【问题标题】:data types and structs in C#C#中的数据类型和结构
【发布时间】:2009-11-23 23:59:10
【问题描述】:

我在 C# 中使用 "Int32", "String", and "Boolean" 而不是 "int", "string", "bool" 已经有一段时间了,但我不知道为什么。为什么这很重要?哪个更好”?有什么区别?

我用过Int32?因为它在我的数据库的 ORM 中可以为空,所以就是这样。

【问题讨论】:

    标签: c# types struct


    【解决方案1】:

    对编译后的代码没有任何影响; intSystem.Int32 的同义词,stringSystem.String 的同义词。

    不过,使用intstring 等更为惯用。

    【讨论】:

    • 没有区别。 StringInt32 是 .NET Framework 中的实际类型名称。 stringint 是它们的别名,由 C# 语言定义(可能是为了让它更像 C/C++)。
    • 它是 .NET 通用类型系统的产物——另见 msdn.microsoft.com/en-us/library/zcx1eb1e(VS.80).aspx
    【解决方案2】:

    这主要是一个风格问题——像int 这样的内置类型名称对于像System.Int32 这样的标准库类型是formally defined as aliases

    【讨论】:

      【解决方案3】:

      'int' 只是“Int32”的别名。但是,我从未见过任何使用别名类而不是 C# 中的别名的代码。如果我想确保我使用的 int 是 32 位,我会使用 Int32,但我没有看到使用更冗长的“布尔”而不是标准别名“布尔”的理由。

      【讨论】:

      • 这对我来说太强迫症了,它归结为 Visual Studio 中的颜色和大小写。我知道,这太疯狂了。
      • @Ed:即使你确实想确定一个 int 是 32 位,那么你仍然可以使用 int 而不是 Int32。它在 C# 和 CLI 规范中得到保证。它不会改变。
      • Luke:对于那些不了解代码中使用 numerout 不同位整数的规范的人,我认为它实际上可以产生可读性差异。
      • Int32 在处理互操作和二进制问题时很有用。我用过它,例如在编写二进制格式解析器时,只是因为它在与 Int16、UInt16 等混合时看起来更一致。
      • 老实说,您不需要熟记规范 - 几乎我看过的每一本“C# for Dummies”类型的书都有一个原始类型表,其中包含正确的关键字和范围在第一章。
      【解决方案4】:

      我会坚持使用int, string, bool,以防我决定将代码或部分代码移植到 c/c++,它只是让它更容易一些。你也会知道每个人都知道int 是什么,但他们可能不知道它与Int32 相同。即使它们基本相同,我也会坚持使用int, string, bool

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多