【问题标题】:Should I follow the StyleCop rules for the C# codes I write in Razor syntax?对于我用 Razor 语法编写的 C# 代码,我应该遵循 StyleCop 规则吗?
【发布时间】:2012-05-30 22:40:00
【问题描述】:

尤其是关于“SA1126:PrefixCallsCorrectly”规则,它告诉我们使用“this”。实例成员的前缀。

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

例子:

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

或者:

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

你可能会注意到“这个”。在这里无效(我同意)。我想遵循适用于我所有日常代码的规则。

StyleCop 不检查 Razor 文件吗?

【问题讨论】:

    标签: razor stylecop


    【解决方案1】:

    嗯,“this”前缀的使用是一种个人(可以争论)选择。

    您可以在此处找到关于这一点的有趣讨论 Why does StyleCop recommend prefixing method or property calls with "this"?

    顺便说一句,例如 Resharper,默认情况下具有相反的规则(删除“无用”这个 - 意味着对编译器无用)。

    但坦率地说,在视图中,我认为它是噪音多于帮助。

    其他点:在您的情况下使用像 @Html.DisplayTextFor(m =&gt; m.Name) 这样的 HtmlHelper,因为它们是强类型的、链接到模型、处理空值等。

    【讨论】:

    • 感谢您的回答,我已经添加了另一个我忘记的示例。
    • 如果您可能会感到困惑,这可能会很有用。在这里,只有噪音(在我眼里)=>仍然没有
    【解决方案2】:

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

    如果您认为值得在 .cs 文件中添加“this”,为什么不将其应用于其他地方的 C# 代码,例如嵌入到 Razor 视图文件中?如果您要在 @{ } 块中包含多行 C# 代码怎么办? “这个”会开始看起来更有用吗? (“this”是否值得的问题在这里并不特别重要,因为您可能已经标准化了使用它。)

    StyleCop 不检查 Razor 文件吗?

    不,StyleCop 不检查 Razor 文件。 StyleCop 目前包含的唯一解析器是 C# 解析器,它只检查带有“.cs”扩展名的文件。

    【讨论】:

    • 我们不确定是否值得添加“this”。在我们的 CS 文件中。我们在选择“这个”之间感到震惊。或“下划线”前缀。我用了“这个”。前缀大约一年,但现在我很困惑:区分实例和静态成员有什么好处?仅从参数和局部变量中识别字段就足够了,可以使用“下划线”前缀来实现。如您所知,我们喜欢适用于我们所有 C# 代码的标准,甚至适用于 Razor。如果它像 Nicole 所说的那样引起噪音(我同意),那么删除“this”似乎更好。前缀规则。
    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 2010-12-14
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多