为什么在C#中生成代码使用下划线?

Eri*_*c.M 3 c# private members

我知道这可能是一个愚蠢的问题,但在这里.我总是写我的私人成员privateMember,我一直在阅读C#中的命名约定,因为我注意到Visual Studio中的很多自动生成的代码都_variableName用于私有成员.我读到的任何地方,即使是在Microsoft文档中,您都应该使用privateMember.所以,我的问题是,如果好的做法说我应该privateMember像现在一样写,为什么Visual Studio会使用下划线(_privateMember)生成私有成员的类?

Sli*_*SFT 6

Microsoft Code Conventions实际上建议不要使用下划线.这真的是个人喜好.我不会使用生成的代码作为我的编码约定标准的灵感.

请勿使用下划线,连字符或任何其他非字母数字字符.

也许这是因为它生成的代码并不打算被人类阅读.;-)

  • 赞赏找到这个参考.我同意除了下划线之外的所有内容,对我来说,如果所有私有字段都以下划线为前缀,则更容易扫描类. (4认同)

Ser*_*rvy 5

命名约定不是100%同意的.这是有些人喜欢的,有些人无动于衷,有些人讨厌.某些人认为实例变量更好地通过他们的名字脱颖而出,这是一种方法.其他人使用this.instanceVariable而不是instanceVariable所有的时间,以便实例变量脱颖而出,其他人前置除了'_'字符以外的东西,有些人只是不愿意使用任何特殊的区别.

在一天结束时,重要的是你和团队的其他成员就标准达成一致并与之保持一致.世界其他地方选择做什么并不需要影响你.

值得一提的是,在大多数情况下,Visual Studio生成的代码片段可以配置为符合您团队的编码实践.


Dam*_*ash 5

不久前,当C#进入市场时,有一个概念,即局部变量应该由前缀引导_.社区不接受这个概念,因为纯粹的C _领导系统变量/功能和元数据是由领导者__.所以几年后,他们现在不鼓励使用它.但是你仍会发现一些使用这种表示法的信徒不是因为它是一个狂热分子,而是很多旧的C#应用​​程序都包含这个约定.

为什么在VisualStudio中?

这可能与它的设计时间差有关.在那个时候,语言设计者提出了这种方法.所以在最新版本的配置中可能没有人改变它.