4

我一直在用“这个”。前缀大约两年(StyleCop SA1102 规则)。但现在我改变主意,对静态和实例私有字段使用“下划线”前缀,并删除“this”。字首。

这是我从“这个”切换的原因。“下划线”:

  1. 容易中断:你的团队中没有人会一直使用“这个”。前缀,所以当你看到一个遵循这种风格的项目时,你不会看到“this”。所有实例成员的前缀。
  2. 无用区分:区分实例字段和静态字段有什么好处?你有什么收获吗?
  3. 噪音:如果您注意使用“this”。前缀,你会在任何地方看到“this”。例如,我们在一个类中有 77 次“this”关键字,但在更改样式后,我们只有 9 个下划线,我认为代码更具可读性(您可以轻松遵循代码逻辑)。
  4. Razor:用“this”似乎很难看。Razor C# 代码中的前缀。例如,您将拥有“@this.Html.Something”而不是“@Html.Something”。我们喜欢一个通用的规则,适用于我们所有的 C# 代码。

你有什么想法?

忽略 StyleCop SA1102 规则(“this.”前缀)并使用“下划线”前缀区分类字段是否合理?

4

2 回答 2

8

你们所有的点也适用于下划线(它需要强制执行,不是那么有用等),如果你将 77 'this' 更改为 9 _ - 你也可以使用 9 'this',我确定。

知道这是一个实例还是静态字段/属性非常有用,imo,esp。在多线程环境中。

然而,当我看到“这个”时——我确切地知道它的意思;下划线..我可以猜到,但在这一点上,这真的取决于你的一致性。

就个人而言,我经常(并非总是)使用“this”来区分局部变量和类属性,尤其是。如果方法很长。

归根结底,这只是一个建议,如果您和您的团队对下划线感到满意 - 使用它。

于 2012-05-25T16:25:16.503 回答
2

我不会说区分静态成员和实例成员是没有用的。这取决于您大部分时间都在处理哪种代码(多线程或仅与线程无关的代码)。“这。” 提供有关所使用成员的即时语义,您个人不需要它的事实在这里并不重要。由几个团队开发的大型企业应用程序极大地受益于像“this”这样的简单可读性改进。

更多细节

于 2017-03-25T11:34:30.650 回答