2012-05-24 94 views
3

我一直在使用“this”。大约两年的前缀(StyleCop SA1102规则)。但是现在我改变了主意,在静态和实例专用字段中使用“下划线”前缀并删除“this”。字首。C#代码样式:从“this”切换。前缀为“下划线”

在这里,我的理由从“这个”切换。为“下划线”:

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

你是什么想法?

是否合理忽略了StyleCop SA1102规则(“这一点。”前缀),并使用“下划线”前缀区分类字段?

+1

我已经知道编写“this”的开发人员。只是因为这个点会带来智能感知。在通知他们Ctrl + Space启动后,他们立即停止使用关键字。 –

+1

当然不同。 “这个。”带来实例成员,而CTRL + SPACE带来了一切。虽然这不是使用“这个”的好理由。“ –

+0

看起来像CTRL + ALT + SPACE只会引发实例成员 - 但那可能只是Resharper。 –

回答

5

你们所有的积分将适用于强调以及(它需要强制执行,而不是有用的,等等),如果你改变77“本”到9 _ - 你可能已经走了9个“这个'我也确定。

了解这是一个实例还是静态字段/属性是非常有用的,imo,esp。在多线程环境中。然而,当我看到'这个'时 - 我确切地知道它的含义;与下划线..我可以猜测,但在这一点上,这取决于你是如何一致。

就个人而言,我经常(并不总是)使用“这个”只是从类属性区分局部变量,ESP。如果方法很长。

在这一天这只是一个建议,如果你和你的团队觉得舒服下划线结束 - 使用。

1

我不会说区分静态和实例成员是无用的。它取决于你在大多数时间工作的代码类型(多线程代码或只是与代码无关的代码)。 “这个。”给出了所使用的成员的直接语义,事实上,你个人不需要这个在这里并不重要。几个团队开发的大型企业应用程序从诸如“this”之类的简单可读性改进中受益匪浅。

A few more details

相关问题