【问题标题】:Base types or Complex types? [duplicate]基本类型还是复杂类型? [复制]
【发布时间】:2012-06-30 01:14:25
【问题描述】:

可能重复:
What is the difference between Bool and Boolean types in C#

这些天,我正在为 Web 应用程序进行大量 C# 编程。我的团队还没有决定我们应该使用基本类型还是复杂类型。

不同类型的优势是什么?

费克斯:

Object vs object
Boolean vs bool

等等……

谢谢!

【问题讨论】:

  • StyleCop 说Use the built-in type alias。看不出有例外的理由
  • 正如其他人所说,它们只是别名:msdn.microsoft.com/en-us/library/c8f5xwh7
  • 'int'、'float' 和 'bool' 是为那些仍然像“C”程序员一样思考的人的训练轮。您可以将它们视为Big Boy Pants,供尚未受过如厕训练的工程师使用。

标签: c#


【解决方案1】:

没有区别 - boolBoolean 的别名,objectObject 的别名。但是,惯用的 C# 会让您使用 objectboolint 等。

请注意,默认情况下,StyleCop 将强制执行此做法。相关规则为SA1121

当然,对于规则是否有效存在不同的意见。我建议阅读这个 SO 问题:C# - StyleCop - SA1121: UseBuiltInTypeAlias - Readability Rules

【讨论】:

    【解决方案2】:

    c#: difference between "System.Object" and "object"

    乔恩·斯基特:

    string 是 global::System.String 的别名。这只是句法 糖。两者完全可以互换,不会有 编译代码的区别。

    我个人使用变量名等的别名,但我使用 CLR 为 API 中的名称键入名称,例如:

    public int ReadInt32() // Good, language-neutral
    
    public int ReadInt() // Bad, assumes C# meaning of "int"
    

    (请注意,返回类型并不是真正的名称 - 它被编码为 输入元数据,所以那里没有混淆。)

    【讨论】:

    • 你拼错了 Jon Skeet 的名字。愿琼恩怜悯你的灵魂。
    • @PhillipSchmidt 好地方哈哈
    • 我只希望我能及时抓住它。他是all-powerful,你知道的。
    【解决方案3】:
    object === System.Object
    string === System.String
    bool === System.Boolean
    byte === System.Byte
    sbyte === System.SByte
    short === System.Int16
    ushort === System.UInt16
    int === System.Int32
    uint === System.UInt32
    long === System.Int64
    ulong === System.UInt64
    float === System.Single
    double === System.Double
    decimal === System.Decimal
    char === System.Char
    

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 2016-11-20
      • 2013-02-03
      • 1970-01-01
      相关资源
      最近更新 更多