c#中bool类型和布尔类型的区别是什么?


当前回答

bool是布尔值的别名。别名的作用是在代码编译之前,用另一个文本字符串替换一个文本字符串(如notepad++中的search/replace-all)。在运行时使用其中一个而不是另一个没有任何影响。

在大多数其他语言中,一个是基本类型,另一个是对象类型(c#术语中的值类型和引用类型)。c#没有提供在两者之间进行选择的选项。当您想要调用Boolean类中定义的静态方法时,它会自动魔术般地将Boolean视为引用类型。如果您创建了一个新的布尔变量,它会自动魔术般地将其视为引用类型(除非您使用Activator。CreateInstance除外)方法。

其他回答

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

也许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项目)

他们是一体的。bool只是布尔值的别名。

bool是System的别名。布尔值,就像int是System.Int32的别名一样。查看别名的完整列表:内置类型表(c#参考)。

bool是布尔值的别名。别名的作用是在代码编译之前,用另一个文本字符串替换一个文本字符串(如notepad++中的search/replace-all)。在运行时使用其中一个而不是另一个没有任何影响。

在大多数其他语言中,一个是基本类型,另一个是对象类型(c#术语中的值类型和引用类型)。c#没有提供在两者之间进行选择的选项。当您想要调用Boolean类中定义的静态方法时,它会自动魔术般地将Boolean视为引用类型。如果您创建了一个新的布尔变量,它会自动魔术般地将其视为引用类型(除非您使用Activator。CreateInstance除外)方法。