我知道这可能是一个愚蠢的问题,但它就在这里。我总是像这样写我的私人成员,privateMember
并且我一直在阅读很多关于 C# 中命名约定的内容,因为我注意到 Visual Studio 中的许多自动生成的代码都_variableName
用于私人成员。我读到的所有地方,甚至在 Microsoft 文档中,你都应该使用privateMember
. 所以,我的问题是,如果好的做法说我应该写privateMember
,就像我现在所做的那样,为什么 Visual Studio 会使用下划线 ( _privateMember
) 生成带有私有成员的类?
7 回答
Microsoft 代码约定实际上建议不要完全使用下划线。这真的是个人喜好。我不会使用生成的代码作为我的编码约定标准的灵感。
不要使用下划线、连字符或任何其他非字母数字字符。
也许是因为它是生成的代码,而不是供人类阅读的。;-)
命名约定不是 100% 同意的。这是有些人喜欢,有些人无所谓,有些人讨厌的其中之一。某些人认为通过他们的名字来突出实例变量会更好,这是一种方法。其他人使用this.instanceVariable
而不是instanceVariable
一直使用以使实例变量脱颖而出,其他人在前面加上“_”字符以外的其他内容,有些人只是不使用任何特殊区别。
归根结底,重要的是您和您团队的其他成员就一个标准达成一致并与之保持一致。世界其他地方选择做什么不需要影响你。
还值得一提的是,在大多数情况下,Visual Studio 生成的代码片段可以配置为符合您团队的编码实践。
不久前,当 C# 推向市场时,有一个概念,即局部变量应该由前缀引导_
。社区不接受这个概念,因为在纯 C 中,_
引导系统变量/函数和元数据由__
. 所以几年后,他们现在不鼓励使用它。但是你仍然会发现一些信徒使用这个符号并不是因为它是狂热的,而是很多旧的 C# 应用程序都包含这个约定。
为什么这是在 VisualStudio 中?
这可能与它设计的时间间隔有关。在那个时候,这种方法是由语言设计者提出的。所以很可能没有人在最新版本的配置中改变这一点。
这只是他们使用的惯例,我也这样做。您最终可以随意命名您的私有字段。用下划线作为前缀只会让 IMO 更容易阅读。
这只是 C# 语言约定,因此当构造函数和字段名称相同时,您可以在构造函数中使用 _varable 而不是 this.variable。
http://msdn.microsoft.com/en-us/library/ms229002.aspx中有所有 c# 命名约定
如果您遵循生成代码的约定,那就是您的母亲。除了建议之外,许多程序员使用与生成代码相同的约定。一些帮助您重构代码的程序还建议您遵循字段名称的命名约定。
作为惯例,私有字段被/用作下划线,例如字符串 _name;
该链接将为您提供有关 MS http://msdn.microsoft.com/en-us/library/ms229045.aspx命名约定指南的更多信息
开头的下划线是VS表示它是privateMember的方式。我们通常在开头保留下划线,但对于您使用的命名约定,这确实是个人喜好。只需选择一个并坚持下去,这样您就不会混淆自己或其他可能查看您的代码的人。