以下三个选项中,您会选择哪个作为C#中的属性名称?为什么?
- YearToDateWages(年至今工资)
- YTDWages(年度工资)
- YtdWages(年初至今工资)
以下三个选项中,您会选择哪个作为C#中的属性名称?为什么?
我会选择第一种方式。除非是一些超级常见的缩写词,否则我更喜欢不要缩写任何东西。例如,“HyperTextTransferProtocolRequest”这样的单词如果拼写出来就太荒谬了,因此将其缩写为“HttpRequest”是可以接受的。这可能有点主观,但当有疑问时,我倾向于不缩写。
如果你决定选择第二或第三种方式,我会投票支持第三种,因为这也是“框架设计准则”建议的做法。该准则基本上指出,对于长度为3个或以上字母的缩写词,应将第一个字母大写,其他字母小写。对于两个字母的缩写词有点模棱两可......有些人喜欢像“ID”那样将所有字母都大写,而有些人则喜欢使用“Id”。实际上,该准则的建议是将两个字母的缩写词所有字母都大写,但这与3个或以上字母的缩写词的规则相矛盾,所以人们两种方法都用。
bool ShouldIUseAbbreviate(string abbreviate_)
{
foreach (var peer in myPeers)
{
if (!peer.CanGetTheMeaningWithinOneSecond(abbreviate_))
{
return false;
}
}
return true;
}
my Peers
:) - Earlz我认为第一个是最好的,因为它是自我描述的。
微软建议的命名规则排除了#2
任何含有> 2个缩写字母的东西应该是Xxx而不是XXX
但是2个字母应该是XX
我喜欢少打字,所以我会选择YtdWages
.Net框架似乎主要遵循第一种方式,所以我会坚持使用它。除非在类级别上极为常见,否则应避免缩写。当然,在本地(函数)变量方面,这种限制要少得多,我认为缩写和简短的名称更加合适,以使代码更小、更简洁。
好的缩写示例包括XML和HTTP。谁会认真写
string x=myobject.HyperTextMarkupLanguageOutput;
你不使用第一个的原因是什么?
这不仅是为了别人;如果你两年后需要更改自己的代码,好的、描述性的名称将会对你有所帮助。
我也投票支持第一项。
很少有情况不需要使用描述性名称。Visual Studio会帮助你处理长名称。
半离题的注释: 如果你找不到合适的名称……也许计划的用途本身就不是很清晰;)