C#常量命名?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (9)
  • 关注 (0)
  • 查看 (88)
private const int THE_ANSWER = 42;

private const int theAnswer = 42;

就我个人而言,我认为用现代的IDE,我们应该和CamelCase一起,因为ALL_CAPS看起来很奇怪。你觉得呢?

提问于
用户回答回答于

推荐的命名和大写约定是对常量使用pascal大小写(microsoft有一个名为StyleCop它记录了所有首选的约定,并可以检查源代码是否符合--尽管有点小。也是对许多人的口味而言,这是非常有创意的)。例如

private const int TheAnswer = 42;

Pascal大写化惯例也在微软的框架设计指南

用户回答回答于

ALL_CAPS是从C和C++的工作方式,我相信。这篇文章这儿解释了风格差异是如何产生的。

在新的IDE(如VisualStudio)中,很容易识别类型、作用域以及它们是否是常量,因此这是不必要的。

FxCop和微软StyleCop软件将帮助你提供指导,并检查你的代码,使每个人的工作方式相同。

用户回答回答于
用户回答回答于

在文章中常量(C#编程指南),Microsoft提供了以下示例:

class Calendar3
{
    const int months = 12;
    const int weeks = 52;
    const int days = 365;

    const double daysPerWeek = (double) days / (double) weeks;
    const double daysPerMonth = (double) days / (double) months;
}

所以,对于常量,它出现微软建议使用camelCasing.

PascalCase.似乎是继微软之后资本化公约一个双字母缩写词(尽管如此)而不是一个阿拉伯语(Acryonym)。“五”似乎表明,两个字母的缩写词的规则扩展到了单个字母缩写或标识符,例如E...

此外,在其大写公约文档中,microsoft非常直接地指出:Field标识符应通过PascalCase并给出了以下示例MessageQueue.InfiniteTimeoutUINT 32.min:

public class MessageQueue
{
    public static readonly TimeSpan InfiniteTimeout;
}

public struct UInt32
{
    public const Min = 0;
}

使用PascalCase表示公共常数(已记录为conststatic readonly)。

用户回答回答于

把Hungarian语留给Hungarian人。

在这个例子中,我甚至省略了最后一篇文章,只需

private const int Answer = 42;

这是答案还是答案?

*使编辑帕斯卡严格正确,但我认为问题是寻求更多的答案生命,宇宙和一切.

用户回答回答于

首先,hungarian符号是使用前缀来显示参数的数据类型或预期用途的做法。微软对hungarian符号的命名约定http://en.wikipedia.org/wiki/Hungarian_notation

http://msdn.microsoft.com/en-us/Library/ms229045.aspx

这里不鼓励使用大写字母:Pascal是可以接受的惯例和尖叫声。http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming

Microsoft在这里还指出,如果大写是为了与现有的方案相匹配,则可以使用大写。http://msdn.microsoft.com/en-us/Library/x2dbyw72.aspx

这差不多是总结了。

用户回答回答于

我们真的需要用const来表达一个常量吗? 我的问题是:我们真的需要这些信息吗? 它以什么方式帮助我们避免错误? 如果我给const赋值,编译器会告诉我我做了一些愚蠢的事情。

有些东西听起来 hungarian 并不是一个有效的论点。问题应该永远是:它是有用的,还是伤害?

有些情况下hungarian帮了忙。现在不多了,但它们仍然存在。

用户回答回答于

从视觉上看,上装是最好的选择。它是如此的容易辨认。为了独特和没有猜测的机会,我投了上一票UPPER_CASE!

const int THE_ANSWER = 42;

当在页面顶部的同一文件中使用常量并用于IntelliSense目的时,上大写将非常有用;但是,如果要将常量移到独立的类中,则使用上大小写将不会有太大影响,例如:

public static class Constant
{
    public static readonly int Cons1 = 1;
    public static readonly int coNs2 = 2;
    public static readonly int cOns3 = 3;
    public static readonly int CONS4 = 4;
}

// Call constants from anywhere
// Since the class has a unique and recognizable name, Upper Case might might lose its charm
private void DoSomething(){
var getCons1 = Constant.Cons1;
var getCons2 = Constant.coNs2;
var getCons3 = Constant.cOns3;
var getCons4 = Constant.CONS4;
 }
用户回答回答于

实际上,是的

private const int TheAnswer = 42;

至少如果你看看 .NET库,它是决定命名约定的最佳方法--所以你的代码看起来不太合适。

扫码关注云+社区

领取腾讯云代金券