【发布时间】:2009-11-23 23:59:10
【问题描述】:
我在 C# 中使用 "Int32", "String", and "Boolean" 而不是 "int", "string", "bool" 已经有一段时间了,但我不知道为什么。为什么这很重要?哪个更好”?有什么区别?
我用过Int32?因为它在我的数据库的 ORM 中可以为空,所以就是这样。
【问题讨论】:
我在 C# 中使用 "Int32", "String", and "Boolean" 而不是 "int", "string", "bool" 已经有一段时间了,但我不知道为什么。为什么这很重要?哪个更好”?有什么区别?
我用过Int32?因为它在我的数据库的 ORM 中可以为空,所以就是这样。
【问题讨论】:
对编译后的代码没有任何影响; int 是 System.Int32 的同义词,string 是 System.String 的同义词。
不过,使用int 和string 等更为惯用。
【讨论】:
String 和 Int32 是 .NET Framework 中的实际类型名称。 string 和 int 是它们的别名,由 C# 语言定义(可能是为了让它更像 C/C++)。
这主要是一个风格问题——像int 这样的内置类型名称对于像System.Int32 这样的标准库类型是formally defined as aliases。
【讨论】:
'int' 只是“Int32”的别名。但是,我从未见过任何使用别名类而不是 C# 中的别名的代码。如果我想确保我使用的 int 是 32 位,我会使用 Int32,但我没有看到使用更冗长的“布尔”而不是标准别名“布尔”的理由。
【讨论】:
int 而不是 Int32。它在 C# 和 CLI 规范中得到保证。它不会改变。
Int32 在处理互操作和二进制问题时很有用。我用过它,例如在编写二进制格式解析器时,只是因为它在与 Int16、UInt16 等混合时看起来更一致。
我会坚持使用int, string, bool,以防我决定将代码或部分代码移植到 c/c++,它只是让它更容易一些。你也会知道每个人都知道int 是什么,但他们可能不知道它与Int32 相同。即使它们基本相同,我也会坚持使用int, string, bool。
【讨论】: