推荐的命名和大写惯例是使用Pascal大小写来表示常量(Microsoft有一个名为StyleCop的工具,它记录了所有首选约定,并且可以检查您的合规性来源 - 虽然它对于许多人的口味有点过于保持).例如
private const int TheAnswer = 42;
Pascal资本化惯例也记录在Microsoft的框架设计指南中.
推荐的命名和大写惯例是使用Pascal大小写来表示常量(Microsoft有一个名为StyleCop的工具,它记录了所有首选约定,并且可以检查您的合规性来源 - 虽然它对于许多人的口味有点过于保持).例如
private const int TheAnswer = 42;
Pascal资本化惯例也记录在Microsoft的框架设计指南中.
实际上,它是
private const int TheAnswer = 42;
至少如果你看看.NET库,哪种IMO是决定命名约定的最佳方式 - 所以你的代码看起来不合适.
在视觉上,大写是走的路.它是如此可识别的方式.为了独特而没有机会猜测,我投票支持UPPER_CASE!
const int THE_ANSWER = 42;
注意:当在页面顶部的同一文件中使用常量并用于智能感知时,大写将很有用; 但是,如果他们被转移到一个独立的班级,使用大写不会有太大的区别,例如:
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 lose its charm private void DoSomething(){ var getCons1 = Constant.Cons1; var getCons2 = Constant.coNs2; var getCons3 = Constant.cOns3; var getCons4 = Constant.CONS4; }
我仍然使用大写字母表示const值,但这更多是出于习惯而不是出于任何特定原因.
当然,它很容易立即看出某些东西是一个常量.我的问题是:我们真的需要这些信息吗?它能以任何方式帮助我们避免错误吗?如果我为const赋值,编译器会告诉我我做了一些愚蠢的事.
我的结论:跟骆驼套管一起去.也许我也会改变我的风格;-)
编辑:
国际海事组织,那些闻起来像匈牙利人的东西并不是真正有效的论点.问题应该始终是:它有帮助,还是有害?
有些情况下匈牙利人有帮助.现在不是很多,但它们仍然存在.
首先,匈牙利表示法是使用前缀来显示参数的数据类型或预期用途的做法.微软的命名惯例是对匈牙利符号说不.http: //en.wikipedia.org/wiki/Hungarian_notation http://msdn.microsoft.com/en-us/library/ms229045.aspx
不鼓励使用UPPERCASE,如下所述:Pascal Case是可接受的约定和SCREAMING CAPS. http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming
Microsoft还在此声明,如果完成匹配现有方案,则可以使用UPPERCASE. http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx
这几乎总结了它.
把匈牙利人留给匈牙利人.
在这个例子中,我甚至遗漏了权威的文章,然后就去了
private const int Answer = 42;
答案是答案还是答案?
*编辑Pascal严格正确,但我认为这个问题是寻求更多的生命,宇宙和一切的答案.
在其文章常量(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
.但请注意,这些常量是在本地定义的.
可以说,外部可见常数的命名更受关注.实际上,Microsoft 将.NET类库中的公共常量记录为字段.这里有些例子:
Int32.MaxValue
String.Empty (实际上 static readonly
)
Math.PI
Math.E
前两个是例子PascalCasing
.第三个似乎是遵循微软的资本化公约的两个字母的首字母缩略词(虽然pi不是丙烯酸酯).第四个似乎表明,双字母丙烯酸的规则扩展到单个字母的缩写词或标识符,例如E
(代表数学常数e).
此外,在其资本化公约文档中,Microsoft非常直接地声明字段标识符应该通过命名,PascalCasing
并为MessageQueue.InfiniteTimeout和UInt32.Min提供以下示例:
public class MessageQueue
{
public static readonly TimeSpan InfiniteTimeout;
}
public struct UInt32
{
public const Min = 0;
}
结论:PascalCasing
用于公共常量(记录为const
或static readonly
字段).
最后,据我所知,Microsoft不提倡私有标识符的特定命名或大小写约定,如问题中提供的示例所示.
ALL_CAPS取自我相信的C和C++工作方式.本文在这里介绍的风格差异是怎么样.
在诸如Visual Studio之类的新IDE中,很容易识别类型,范围以及它们是否恒定,因此并非绝对必要.
该FxCop的微软了StyleCop软件将帮助给你指导和检查你的代码,以便每个人都以同样的方式.
其实,我倾向于喜欢这里PascalCase - 但出于习惯,我有罪UPPER_CASE的...