【问题标题】:Best Practices : What to use, .Net Class or short name? [closed]最佳实践:使用什么,.Net 类或短名称? [关闭]
【发布时间】:2012-12-03 20:39:48
【问题描述】:

在 C# 中,我们有 .Net 类和短名称,例如 Double 和 double。某个时候有人建议我总是使用简称,想知道为什么。 我知道他们都是一样的,但为什么有时一个人比其他人更受欢迎?只是可读性还是有更多内容?

例如,如果我正在创建一个具有字符串和布尔属性的类,则应始终使用以下哪一项以及何时应使用另一项:

Class MyClass {
    ...
    private String x;
    private Boolean y;
    ...
}

Class MyClass {
    ...
    private string x;
    private bool y;
    ...
} 

【问题讨论】:

  • Double 和 double 不完全一样...
  • @Styxxy:错了。这是 C#,不是 Java。
  • 请参阅 stackoverflow.com/questions/6000517/… 了解 StyleCop 规则讨论
  • @MaxYakimets 哦,谢谢 :) 这非常有用 :),所以最终这是个人选择,对吧?

标签: c#


【解决方案1】:

嗯,它们是一样的。 编译到 CLR 后,它们都指向相同的数据类型。

【讨论】:

    【解决方案2】:

    简而言之:随心所欲。

    我宁愿每次都使用别名。

    当您的代码中有多个不同的 Int 时,请使用 Int32 而不是 int。比如混合Int32Int64Int16

    【讨论】:

    • Richter 说,对于使用多种语言(不仅是 C#)的人来说,使用真实姓名更清楚。我认为他是对的。
    • 当然可以,但是假设您有一个代码块,其中混合使用了shortintlong 等。使用Int16、@987654329 会更容易理解@和Int64
    • 所以?我说了同样的话——使用真实姓名(不是别名)。
    • 抱歉,我误会你了。我的错。
    【解决方案3】:

    你可以在你的代码中使用 Int32 或 int,但你应该以一种方便的方式使用它,你不应该同时使用它们,这会使代码不可读,但是 C# 约定说你应该总是使用同义词。

    有时,您可能会在 Java 中的“Wrapper Classes”和 .Net 中的“Nullable Types”之间混用,或者 “C#的Type Synonyms

    在C#中“int”和“Int32”是一样的,“bool”和“Boolean”是一样的,“string”和“String”是一样的,但是“int”在C#语言中是“System”的同义词.Int32" .Net 类。

    你可以使用“int?”或 Nullable 使变量接受“null”值,但在 Java 中,您应该使用包装类 Integer 而不是 integer 来保存“null”值。

    【讨论】:

      【解决方案4】:

      intboolstring 等只是System 命名空间中预定义类型的别名。

      完整列表:Built-in types (C# reference)

      【讨论】:

        【解决方案5】:

        这完全取决于你。对于某些可读性更重要。因此,请使用对您来说更具可读性和方便性的一种。

        别名只是为了方便而使用,但它们与编译器的实际别名相同。

        【讨论】:

          【解决方案6】:

          string 是 System.String 的别名,bool 是 System.Boolean 的别名等等。 C# 类型关键字及其别名是可以互换的。

          我个人更喜欢使用别名,除非我需要强调显式类型以防将来需要此信息。比如使用 System.Int32 代替 int 来显式地表明存在限制,即使它们完全相同。

          【讨论】:

            【解决方案7】:

            当你需要访问静态方法时你应该使用类名,在声明给定类型的变量/字段时应该使用短名称。

            int i = 0;
            Int32.TryParse(s, out i);
            

            查看任何 Microsoft 代码示例 http://msdn.microsoft.com/en-us/library/system.int32.aspx

            编译代码与其他方式没有区别。它更简洁,更具可读性。

            【讨论】:

            • 您在哪里看到了 C# 的这种约定?
            • @MSakherSawan 这是 MS 通常在其示例代码中使用的格式。
            • 您可能是对的,但我可以向您展示许多使用 int.TryParse 而不是 Int32.TryParse 的 Microsoft 示例,但似乎没有对此的约定。
            猜你喜欢
            • 2010-10-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-29
            • 1970-01-01
            • 2010-09-07
            • 2020-02-05
            相关资源
            最近更新 更多