代码之家  ›  专栏  ›  技术社区  ›  Adrian Godong

内置类型,何时(不)使用?

  •  7
  • Adrian Godong  · 技术社区  · 16 年前

    c和vb.net附带了映射到clr类型的内置类型。例如:int(c)和integer(vb)映射到system.int32,long(c)和long(vb)映射到system.int64。决定何时使用或不使用内置类型(改用system.*structs/classes)的最佳实践是什么?

    6 回复  |  直到 16 年前
        1
  •  37
  •   Reed Copsey    16 年前

    我几乎总是使用内置别名,比如int/short/long。它们更易于阅读,并且不要求您导入system或在任何地方键入system.int32等。

    语言清楚地定义了它们,并赋予它们特定的含义,所以我看不出有任何伤害。然而,这是100%的个人选择。

    这就是说——我明确使用int32、int16等的地方之一,是我处理二进制存储或传输,特别是到自定义二进制格式或从自定义二进制格式传输。在这种情况下,让每个成员进出文件的显式位大小使代码更加可读和易懂,imo。

        2
  •  15
  •   Binary Worrier    16 年前

    语言类型(例如string、int、char)只是clr类型(system.string、system.int32、system.char)的别名。

    它们是可互换的,没有必要偏爱其中一个。

    编辑

    海报要求在两者之间做出选择,很好。

    就我个人而言 倾向 选择C语言类型(int、string、char等),因为它们涉及较少的类型——我想我只是懒了点:)

        3
  •  14
  •   mqp    16 年前

    我唯一能明确使用的时间” System.XYZ" 与内置类型关键字相比,当我需要一个非常特定大小的整数类型时,我希望阅读我的代码的任何人都清楚这一点(例如,我可能使用 Int32 而不是 int 如果所讨论的整数实际上是4个8位字段打包在一起。)

        4
  •  5
  •   Daniel Brückner    16 年前

    我总是用 System.* 类型,因为它们在其他类之间看起来更加一致-大写字母和相同的语法突出显示。但这只是个人喜好和审美问题。

        5
  •  2
  •   TcKs    16 年前

    使用“int”和“int32”(以及其他)是完全相同的。typicaly使用关键字(int、integer(vb.net)、bool等),因为它在ide中更短、更高。

        6
  •  1
  •   Tetsujin no Oni    16 年前

    与何时使用或不使用语言类型和显式的bcl类名相比,更重要的是知道您要使用的类型是否符合cls。

    特别是,无符号整数类型不符合CLS,因为不要求语言支持无符号整数数学。

    除了这个皱纹…我将推荐更符合您的组织代码实践的习惯用法。如果您完全命名类型引用,那么我将在系统中继续该模式。*命名空间…(不过,我也建议不要这样做,因为这样做会增加读者的阅读量,而不会增加清晰度)。