为啥是布尔值和布尔值
Posted
技术标签:
【中文标题】为啥是布尔值和布尔值【英文标题】:Why Boolean And bool为什么是布尔值和布尔值 【发布时间】:2011-01-29 00:09:31 【问题描述】:从link(在Question 中提到)我的问题是微软说“C# 类型的关键字和它们的别名是可以互换的”但是为什么我们需要别名,从我的角度来看,布尔值更有意义bool 和 Int32 比 int 更有意义,那么为什么别名???
【问题讨论】:
【参考方案1】:因为 C# 试图与 C/C++ 有点相似,以便熟悉。如果您愿意,欢迎您使用长名称,但我认为大多数人更喜欢短名称。
【讨论】:
【参考方案2】:因为程序员很懒,微软想帮他们一个忙。
我更喜欢长名称,但大多数以前的 C++ 程序员将习惯于 string、int、float 和 double。
【讨论】:
我相信甚至在 MS 的风格指南 (StyleCop) 中,使用内置别名 int、string 等而不是完整的类型名。 为了懒惰,我更喜欢str
而不是string
:p
-1 认为微软希望为程序员提供任何帮助。
Microsoft 有几千名开发人员,其中许多人正在或将要使用 .NET 进行开发,因此对使用它的程序员友好符合他们自己的利益。【参考方案3】:
因为在C[1]和C++中数据类型被命名为bool
和int
,而C#是基于C/C++设计的。
Boolean 和 Int32 也是所有 CLR 语言共享的 .NET 框架的名称,但个别语言可以定义自己的别名(例如 VB.net 中的 Boolean
和 Integer
)以适应“感觉"的那种语言。
[1]: C99 / 带有 stdbool.h
【讨论】:
【参考方案4】:因为“System.Boolean”是来自 mscorlib.dll 的值类型,而“bool”是来自 C# 的关键字。如果你愿意,你可以指定你自己的程序集而不是 mscorlib,它将实现“bool”、“byte”、“sbyte”、“int”等......
【讨论】:
亲爱的上帝。我希望我永远不会遇到一段觉得有必要这样做的代码...... 那么你在哪里回答“为什么我们需要别名”? @Paddy:我曾经将它用于特殊的紧凑框架应用程序。是的 - 这是非常特殊的解决方案。 @Kamarey:我们不需要它。它不是核心中的别名。 “bool”在 c# 语言中指定 bolean 数据类型(可以在 .NET 以外的其他环境中实现),“System.Boolean”是某些程序集中的类型(结构),c# 编译器使用它映射到“bool”关键字C#。 C# 规范将bool
定义为System.Boolean
的别名。虽然您可以自行修改/更改它,但生成的语言将不符合规范的 C#。以上是关于为啥是布尔值和布尔值的主要内容,如果未能解决你的问题,请参考以下文章