C#中bool和Boolean类型有什么区别

时间:2008-09-25 17:35:28

标签: c# types boolean

C#中的boolBoolean类型之间有什么区别?

15 个答案:

答案 0 :(得分:359)

boolSystem.Boolean的别名,因为intSystem.Int32的别名。请在此处查看完整的别名列表:Built-In Types Table (C# Reference)

答案 1 :(得分:44)

我不相信有一个。

bool只是System.Boolean

的别名

答案 2 :(得分:22)

他们是同一个人。 bool只是布尔值的别名。

答案 3 :(得分:18)

没有区别 - bool只是System.Boolean的别名。

http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx

答案 4 :(得分:14)

我意识到这是多年之后但我偶然发现了谷歌的这个页面上有同样的问题。

截至目前,MSDN页面上存在一个细微差别。

VS2005

  

注意:

     

如果您需要一个也可以为null的布尔变量,请使用bool。   有关更多信息,请参见Nullable Types(C#编程指南)。

VS2010

  

注意:

     

如果您需要一个也可以为null的布尔变量,请使用bool?。   有关更多信息,请参见Nullable Types(C#编程指南)。

答案 5 :(得分:13)

他们是一样的。 Boolean有助于简化C#和VB.Net之间的来回转换。大多数C#程序员倾向于选择'bool',但是如果你在一个有大量VB.Net和C#的商店,那么你可能更喜欢布尔,因为它适用于两个地方。

答案 6 :(得分:9)

一个是另一个的别名。

答案 7 :(得分:9)

如前所述,它们是一样的。有两个因为bool是C#关键字而布尔是.Net类。

答案 8 :(得分:5)

bool是Boolean类的别名。我在类上调用方法时声明变量和类名时使用别名。

答案 9 :(得分:2)

它们是相同的,Bool只是缩短了System.Boolean。当你使用VB.net程序员时使用布尔值,因为它适用于C#和Vb

答案 10 :(得分:1)

请注意Boolean只有using System;(通常,但不一定包括在内)才会有效(除非您将其写为System.Boolean)。 bool不需要using System;

答案 11 :(得分:0)

bool是一种原始类型,意味着值(本例中为true / false)直接存储在变量中。 Boolean是一个对象。 Boolean类型的变量存储对Boolean对象的引用。唯一真正的区别是存储。对象总是占用比基本类型更多的内存,但实际上,将所有布尔值更改为bool并不会对内存使用产生任何明显影响。

我错了;它是如何使用boolean和Boolean在java中工作的。在C#中,bool和Boolean都是引用类型。它们都将它们的值直接存储在变量中,它们都不能为空,并且它们都需要一个" convertTO"将值存储在另一种类型(如int)中的方法。只有在需要调用Boolean类中定义的静态函数时,才会使用哪一个。

答案 12 :(得分:0)

除非获得类型字符串,否则没有实际区别。 当您使用反射或GetType()时,您会得到 {Name =“ Boolean” FullName =“ System.Boolean”} 对于两者。

答案 13 :(得分:-1)

也许bool比布尔更“轻”;有趣的是,改变这个:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public bool CanUseOnItems { get; set; }
    }
}

......对此:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public Boolean CanUseOnItems { get; set; }
    }
}

...导致我的cs文件发出“使用系统”;将类型更改回“bool”会导致using子句的头发变灰。

(Visual Studio 2010,WebAPI项目)

答案 14 :(得分:-1)

bool是Boolean的别名。在编译代码之前,别名所做的是将一个文本字符串替换为另一个文本字符串(例如,在notepad ++中搜索/替换所有内容)。在运行时使用一个而不是另一个。

在大多数其他语言中,一个是原始类型,另一个是对象类型(C#术语中的值类型和引用类型)。 C#不允许您在两者之间进行选择。当您想要调用Boolean类中定义的静态方法时,它会自动将布尔值视为引用类型。如果您创建一个新的布尔变量,它会自动将其视为引用类型(除非您使用Activator.CreateInstance方法)。