C# 中的布尔类型和布尔类型有什么区别
本文关键字:布尔 类型 什么 区别 | 更新日期: 2023-09-27 17:47:20
C# 中的 bool
和 Boolean
类型有什么区别?
bool
是System.Boolean
的别名,就像int
是System.Int32
的别名一样。在此处查看别名的完整列表:内置类型表(C# 参考)。
我不相信有。
bool
只是System.Boolean
的别名
它们是一回事。
bool
只是Boolean
的别名。
没有区别 - bool 只是 System.Boolean 的别名。
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
我意识到这是多年后的事情,但我偶然发现了这个页面,从谷歌上发现了同样的问题。
截至目前,MSDN 页面上有一个细微的差异。
VS2005
注意:
如果需要值也可以为 null 的布尔变量,请使用 bool。 有关更多信息,请参见可为 null 的类型(C# 编程指南)。
VS2010
注意:
如果需要一个值也可以为 null 的布尔变量,请使用 bool?。 有关更多信息,请参见可为 null 的类型(C# 编程指南)。
它们是相同的。
C#程序员往往更喜欢bool
。它打字更少,只是从来自该语言家族的人那里感觉更自然。它还保证你获得实际的System.Boolean
类型(否则可以在不同的命名空间中创建自己的Boolean
类型,并且类型解析可能会变得不明确)。
但是,如果你在一个有很多 VB.Net 和 C# 的商店里,那么你可能更喜欢Boolean
因为它在这两个地方都有效,有助于简化 C# 和 VB.Net 之间的来回转换。
如前所述,它们是相同的。有两个,因为 bool 是 C# 关键字,布尔值是 .Net 类。
一个是另一个的别名。
bool 是布尔类的别名。我在声明变量时使用别名,在类上调用方法时使用类名。
它们是相同的,Bool只是System.Boolean的缩写。当您与 VB.net 程序员一起使用时,请使用布尔值,因为它同时适用于 C# 和 Vb
请注意,Boolean
只有在您有using System;
的情况下才能工作(通常但不一定包含)(除非您将其写为System.Boolean
)。 bool
不需要using System;
bool 是一个原始类型,这意味着值(在本例中为 true/false)直接存储在变量中。 布尔值是一个对象。 布尔类型的变量存储对布尔对象的引用。 唯一真正的区别是存储。 对象总是比基元类型占用更多的内存,但实际上,将所有布尔值更改为 bool 不会对内存使用产生任何明显影响。
我错了;这就是它在java中布尔值和布尔值的工作方式。 在 C# 中,布尔值和布尔值都是引用类型。 它们都直接将其值存储在变量中,它们都不能为 null,并且它们都需要"convertTO"方法来将它们的值存储在另一种类型(例如 int)中。 只有当你需要调用布尔类中定义的静态函数时,使用哪一个才重要。
除非获得类型字符串,否则没有实际区别。当你使用反射或 GetType() 时,你会得到{名称 = "布尔" 全名 = "System.Boolean"}对于两者。
bool 是 bool 的别名。别名的作用是在编译代码之前用另一个文本字符串替换一个文本字符串(如记事本++中的搜索/替换全部)。在运行时使用一个而不是另一个不起作用。
在大多数其他语言中,一个是基元类型,另一个是对象类型(C# 行话中的值类型和引用类型)。C# 不提供在两者之间进行选择的选项。当您想要调用布尔类中定义的静态方法时,它会自动神奇地将布尔值视为引用类型。 如果创建一个新的布尔变量,它会自动将其视为引用类型(除非您使用 Activator.CreateInstance 方法)。
也许布尔值比布尔值"轻"一点;有趣的是,更改此设置:
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 项目)