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;
}
9条答案
按热度按时间6uxekuva1#
我仍然使用大写的常量值,但这更多的是出于习惯,而不是出于任何特殊的原因。
当然,它可以让我们很容易地立即看出某个东西是常数。对我来说,问题是:我们真的需要这些信息吗?它能帮助我们避免错误吗?如果我给const赋值,编译器会告诉我我做了一些愚蠢的事情。
我的结论是:用驼色的肠衣吧。也许我也会改变我的风格;- )
编辑:
有些东西 * 闻起来 * 匈牙利不是一个真正有效的论点,国际海事组织。问题应该永远是:这是帮助,还是伤害?
匈牙利人有时候会帮忙,虽然现在不多,但仍然存在。
tyu7yeag2#
首先,匈牙利表示法是使用前缀来显示参数的数据类型或预期用途的做法。
不鼓励使用大写,如下所述:Pascal Case是可接受的约定和SCREAMING CAPS。http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming
Microsoft还在此声明,如果要匹配现有方案,则可以使用大写。http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx
这几乎总结了它。
ymzxtsji3#
在其文章Constants (C# Programming Guide)中,Microsoft给出了以下示例:
因此,对于常量,微软似乎推荐使用
camelCasing
。但请注意,这些常量是在本地定义的。可以说,外部可见常量的命名更有意义。实际上,Microsoft在.NET类库中将其公共常量记录为字段。以下是一些示例:
static readonly
)前两个是
PascalCasing
的例子。第三个似乎遵循微软的Capitalization Conventions,用于两个字母的首字母缩写(尽管pi不是acryonym)。第四个似乎表明,两个字母的acryonym规则扩展到单字母首字母缩写或标识符,如E
(代表数学常数e)。此外,在其Capitalization Conventions文档中,Microsoft非常直接地指出字段标识符应通过
PascalCasing
命名,并给出了MessageQueue.InfiniteTimeout和UInt32.Min的以下示例:结论:使用
PascalCasing
作为公共常量(记录为const
或static readonly
字段)。最后,据我所知,微软并不提倡为private标识符指定特定的命名或大写约定,如问题中的示例所示。
bprjcwpo4#
把匈牙利语留给匈牙利人。
在这个例子中,我甚至省略了权威性的文章,只使用
这是答案还是答案?
smdncfj35#
我实际上倾向于在这里使用PascalCase-但出于习惯,我对UPPER_CASE感到内疚…
46qrfjad6#
我相信ALL_CAPS取自C和C++的工作方式。本文here解释了风格差异是如何产生的。
在新的IDE中,例如Visual Studio,很容易识别类型,范围以及它们是否是常量,因此它不是严格必要的。
FxCop和Microsoft StyleCop软件将为您提供指导并检查您的代码,以便每个人都以相同的方式工作。
ncecgwcz7#
推荐的命名和大写约定是使用PascalCasing作为常量(微软有一个名为StyleCop的工具,它记录了所有首选的约定,并可以检查您的源代码是否符合-尽管对于许多人的口味来说,它有点太过于保留了)。
Pascal大小写约定也在Microsoft的Framework Design Guidelines中有文档记录。
byqmnocz8#
从视觉上看,大写是要走的路。这样很容易识别。为了唯一性和不留下猜测的机会,我投大写的票!
注意:当常量要在页面顶部的同一个文件中使用时,以及出于智能感知的目的,大写将非常有用;但是,如果要将它们移动到一个独立的类中,使用大写字母不会有太大的区别,例如:
3df52oht9#
事实上是的
至少如果你看一下.NET库,IMO是决定命名约定的最好方法--这样你的代码就不会显得格格不入。