private const int THE_ANSWER = 42;
要么
private const int theAnswer = 42;
我个人认为,对于现代IDE,我们应该使用camelCase,因为ALL_CAPS看起来很奇怪。 你怎么看?
#1楼
Microsoft在其文章Constants(C#编程指南)中给出了以下示例:
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;
}
因此,对于常量, 看来 Microsoft建议使用camelCasing
。 但是请注意,这些常量是在本地定义的。
可以说,外部可见常量的命名引起了人们的极大兴趣。 实际上,Microsoft在.NET类库中将其公共常量记录为field 。 这里有些例子:
- Int32.MaxValue
- String.Empty (实际上是
static readonly
) - 数学PI
- 数学
前两个是PascalCasing
示例。 第三个似乎遵循Microsoft的大写约定 ,使用两个字母的首字母缩写词(尽管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并不主张针对专用标识符的特定命名或大写约定,如问题所呈现的示例所示。
#2楼
在外观上,大写字母是必经之路。 这样就很容易辨认了。 为了唯一,并且没有猜测的机会,我投票支持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;
}
#3楼
将匈牙利人留给匈牙利人。
在这个例子中,我什至省去了权威文章,而只是
private const int Answer = 42;
那是答案还是那答案?
*严格按照Pascal的观点进行编辑,但是我想这个问题正在寻求更多关于生命,宇宙和万物的答案。
#4楼
我相信,ALL_CAPS来自C和C ++的工作方式。 本文在这里解释了样式差异是如何产生的。
在新的IDE(例如Visual Studio)中,很容易识别类型,范围以及它们是否为常量,因此并不是必须的。
FxCop和Microsoft StyleCop软件将帮助您提供准则并检查您的代码,以便每个人都以相同的方式工作。
#5楼
对于const值,我仍然使用大写字母,但这比出于任何特定原因更不习惯。
当然,可以很容易地立即看到某些东西是常量。 我的问题是:我们真的需要这些信息吗? 它对我们避免错误有任何帮助吗? 如果我给const赋值,编译器会告诉我我做了一些愚蠢的事情。
我的结论是:穿上骆驼衣。 也许我也会改变自己的风格;-)
编辑:
国际海事组织(IMO)认为闻到匈牙利味的东西并不是一个有效的论点。 问题应该始终是:它有帮助还是有伤?
在某些情况下,匈牙利会提供帮助。 如今并不多,但它们仍然存在。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3165654