2012-05-24 21 views
2

特别是关于“SA1126:PrefixCallsCorrectly”规则,它告诉我们使用“this”。实例成员的前缀。我应该遵循我使用Razor语法编写的C#代码的StyleCop规则吗?

我应该遵循Razor语法中的这些规则吗?

例子:

<span>@this.Html.DisplayFor(m => m.Name)</span> 

您可能会注意到:

<span>Name: @this.Model.Name</span> 

或者 “这一点。”在这里是无效的(我同意)。我想遵循适用于我所有日常代码的规则。

并不StyleCop检查剃刀文件?

回答

2

那么,“这个”前缀的用法是一种个人(可以辩论)的选择。

您可以在这里找到 Why does StyleCop recommend prefixing method or property calls with "this"?

顺便说在这一点上一个有趣的讨论,ReSharper的,例如,在默认情况下逆规则(删除“无用”这 - 这意味着无用的编译器)。

但坦率地说,在一个视图中,我认为它比帮助更多的噪音。

其他点:使用HtmlHelpers像你的情况@Html.DisplayTextFor(m => m.Name),因为他们是强类型,挂模式,照顾空值等

+0

感谢您的回答,我添加了另一个我忘记的例子。 –

+0

如果您有困惑,这可以是有用的。在这里,它只是噪音(在我的眼睛)=>仍然没有 –

1

我应该遵循剃刀语法规则?

如果你已经决定,这是值得加入“本”在你的.cs文件,你为什么不希望将它应用到其他地方的C#代码,如嵌入在Razor视图文件?如果在@{ }区块中有多行C#代码,该怎么办? “这个”会开始看起来更有用吗? (在这里,“这个”是否值得的问题在这里并不特别相关,因为你大概已经使用它了。)

而且StyleCop不检查Razor文件吗?

不,了StyleCop不检查剃刀文件。 StyleCop当前包含的唯一解析器是C#解析器,它仅检查具有“.cs”扩展名的文件。

+0

我们不确定值得添加“这个”。在我们的CS文件呢。我们在选择“这个”之间感到震惊。或“下划线”前缀。我使用了“这个”。前缀大约一年,但现在我很困惑:区分实例和静态成员有什么好处?只需识别参数和局部变量的字段就足够了,可以用“下划线”前缀来发生。如您所知,我们喜欢一种适用于我们所有C#代码甚至是剃刀的标准。如果它像尼科尔所说的那样产生噪音(我同意),所以最好删除“this。”前缀规则。 –

相关问题