【问题标题】:What's the more elegant way to declare a const in C# [duplicate]在 C# 中声明 const 的更优雅的方法是什么 [重复]
【发布时间】:2011-03-27 10:54:34
【问题描述】:

可能重复:
C# naming convention for constants?

我正在用 C# 重构一个库,发现很多大写常量:

INTERVAL, TIME, SECONDS.

我认为这是一种不必要的,我个人更喜欢用骆驼案声明一切。是否存在关于更好方法的确切定义?

【问题讨论】:

    标签: c# coding-style constants


    【解决方案1】:

    最终情况不会产生任何影响(除非它与类型/关键字/等冲突)。所以真的一致性才是主要的。

    Capitalization Conventions 不区分常量和其他成员 - 但这些只是指南。所以它会是 pascal-case

    【讨论】:

      【解决方案2】:

      全大写常量是一种常见的约定……

      ...但是约定就是这样,而且是任意的。如果您正在为自己编写代码,那么没有令人信服的理由不选择您自己的代码。如果您与其他开发人员合作,则必须就命名约定达成一致。

      如果您编写的内容会被团队以外的其他人使用,您最好坚持使用最常见和最容易识别的命名约定以避免混淆。

      最后,一致性才是最重要的。

      【讨论】:

      • 不会打扰你,但我认为默认的是 .NET 约定,这需要 PascalCase。
      • 没错!但是我将为我的团队重构库。我想要一些像@Marc 建议的约定。
      • C# 约定是 Pascal 大小写。
      【解决方案3】:

      这完全取决于您的团队/团队在定义编码指南时选择的标准。

      如果其他人都使用 ALL_UPPER_CASE,那么你应该排队。

      就我个人而言,我更喜欢对常量使用大写字母,以便通过查看它们就知道它们是什么。

      【讨论】:

      • 我这样做是出于类似的原因。事实上,我更进一步,让我的局部变量以 _ 开头,而我的常量以 __ 开头(双下划线)。这样,当您使用 Intellisense 时,_ 可以让您访问所有局部变量,同样也可以访问常量。
      • ALL_UPPERCASE 可以追溯到使用 C 预处理器来伪造常量。从那时起,我们已经走了很长一段路……
      【解决方案4】:

      MSDN page on constants 建议应将常量视为静态字段成员。在这种情况下,Captialization Conventions 表明 PascalCasing 是合适的。

      如果您的常量是公共 API 的一部分,我建议您遵循此约定。

      但是,如果常量只是一个私有成员,您可以使用任何您希望的约定。 MSDN,在这种情况下,实际上有lower case constant members in the Constant help page,例如。

      【讨论】:

      • 确实如此。您可以使用 CLR 常量(例如 System.Int32.MaxValue)看到这一点。
      【解决方案5】:

      Microsoft's recommendations 没有提及全大写名称。它们没有明确指定 constants 的大小写约定,但它们有一个用于枚举值 (PascalCase) 和只读静态字段 (还有 PascalCase) 的大小写约定。所以根据微软的指导方针,PascalCase 可能是你最好的选择。

      【讨论】:

        【解决方案6】:

        我通常将 PascalCase 用于公共常量,将 camelCase 用于私有常量。例外情况是常量是从较旧的 C/C++ 库或类似库(例如与 P/Invoke 一起使用的库)导入的。 - 我保留它们在原始库中的原样。

        【讨论】:

        • +1:当使用的常量应该“映射”到一些著名的 C/C++ 代码(许多库使用大写约定)时,我也倾向于保持它们不变。 .. 为清楚起见
        【解决方案7】:

        这是所有偏好,但我相信大写是对#define 的回归,因为据我所知,const 与它相差不远。

        更具体地说,我相信大写 const 只是另一种描述方法,您在方法中看到所有大写的东西并且您知道它是一个 const,如果它是驼峰式大小写它是本地的,带有 _ 的驼峰式大小写是成员私有,并且帕斯卡案例是会员公众。

        虽然这只是一些人喜欢的一致性标准之一,但它确实是优先的,尽管我认为原因正如我所说,只是为了让你在看到所有大写字母时明白这是一个常量。

        【讨论】:

          猜你喜欢
          • 2011-02-12
          • 2020-06-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-26
          • 1970-01-01
          相关资源
          最近更新 更多