StyleCop 刚告诉我,我不应该使用m_
为成员变量添加前缀。这是c#编码风格的官方线吗?我猜这是来自MS。有谁知道这个?
默认情况下,StyleCop不允许使用下划线,m_等标记本地类字段,而使用'this。'前缀。使用'this。'的优点是它同样适用于所有元素类型,包括方法,属性等,而不仅仅是字段,使得对类成员的所有调用都可以立即识别,无论使用哪个编辑器查看代码。另一个优点是它在实例成员和静态成员之间创建了一个快速,可识别的区别,它不会被加上前缀。
答案 0 :(得分:5)
虽然我确实喜欢私有成员字段的_
前缀。只需通过相应的getter / setter来区分它们。
答案 1 :(得分:5)
请记住样式警察是一种用于强制执行特定(在本例中为Microsoft内部)编码样式的工具。其建议不应与FxCop的建议相同,或者(优秀)框架设计指南书中的任何其他建议。控制任何给定源代码的个人或组织应该是该代码的样式指南的来源 - 除了“官方”电子邮件签名之外,没有全球“官方”编码样式或'官方'编码字体。
答案 2 :(得分:3)
这完全取决于你的风格。您可以进入并修改该规则以适合您的编码风格,这样您就不会对此感到恼火。我个人觉得m_有点冗长,“我已经知道它是会员!”我会选择下划线。 _会员。
答案 3 :(得分:2)
你看一下Names of Type Members部分,然后说:
字段命名准则适用于静态公共和受保护 领域。 指南不包含内部和私人字段
(我的重点)
我总是觉得Stylecop喜欢this
前缀很烦人。我很快就能认出我正在打电话给班级成员,因为我说:
Load();
并写作:
this.Load();
不是真的告诉我更多,它只是让我的线条更加冗长。当然,Load
可能是静态的,但我在乎什么呢?
我个人喜欢m_
方法。这使我很容易在代码中搜索成员变量,所有成员变量在成员下拉列表中组合在一起,当我输入m_
Intellisense时,会立即将列表缩小到我的所有成员变量。使用this
前缀时,您无法获得任何此类内容。
如果针对核心C#库运行Reflector,您会看到m_
和_
之类的前缀,所以很明显Microsoft在私人和内部成员的命名方面非常灵活。 / p>
当我看到成员变量和方法带有this
前缀的代码时,我倾向于降低我对该开发人员的看法,特别是如果关于它的对话结束时他们以#34; Stylecop说的理由为其辩护我应该"。
答案 4 :(得分:0)