c#中bool类型和布尔类型的区别是什么?
当前回答
bool是布尔值的别名。别名的作用是在代码编译之前,用另一个文本字符串替换一个文本字符串(如notepad++中的search/replace-all)。在运行时使用其中一个而不是另一个没有任何影响。
在大多数其他语言中,一个是基本类型,另一个是对象类型(c#术语中的值类型和引用类型)。c#没有提供在两者之间进行选择的选项。当您想要调用Boolean类中定义的静态方法时,它会自动魔术般地将Boolean视为引用类型。如果您创建了一个新的布尔变量,它会自动魔术般地将其视为引用类型(除非您使用Activator。CreateInstance除外)方法。
其他回答
也许bool比Boolean“轻”一点;有趣的是,改变这一点:
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项目)
它们是一样的。
c#程序员倾向于使用bool类型。更少的打字,来自那个语言家族的人感觉更自然。它也保证你得到实际的系统。布尔类型(否则可以在不同的名称空间中创建自己的布尔类型,并且类型解析可能变得不明确)。
但是如果你在一个商店里面有很多VB和VB。Net和c#,那么你可能更喜欢布尔,因为它在两个地方都可以工作,并有助于简化c#和VB.Net之间的转换。
没有实际的区别,除非你得到类型字符串。 当你使用反射或GetType()时,你得到 {Name = "Boolean" FullName = "系统。布尔”} 为两个。
bool是System的别名。布尔值,就像int是System.Int32的别名一样。查看别名的完整列表:内置类型表(c#参考)。
如前所述,它们是一样的。有两个,因为bool是c#关键字,Boolean是. net类。
推荐文章
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何分裂()一个分隔字符串到一个列表<字符串>
- 纬度和经度的数据类型是什么?
- 如何转换列表<字符串>列表<int>?
- c#对象列表,我如何得到一个属性的和
- 我如何使用IValidatableObject?
- 如何指定最小值,但没有使用范围数据注释属性的最大小数?
- c# vs Java Enum(适合c#新手)
- c#消毒文件名