如何处理冲突编码约定?

时间:2011-06-06 09:18:48

标签: c# .net resharper coding-style stylecop

通常我们使用各种静态代码分析工具来分析我们的代码以进行验证。但我看到了一些相互矛盾的情况。

作为一个例子,如果我们使用类变量,StyleCop将建议我们使用

this.Name = myName

代替,

Name = myName

但这会弹出Resharper错误,“Redundant qualifier”并建议不要使用“this”。符号

因此,在这种情况下,我需要检查更一致的引用,以选择正确/最佳。是否存在“定义”正确约定的此类资源?

5 个答案:

答案 0 :(得分:9)

没有正确的约定,你采用你喜欢的那个,这是你的基线/参考。

如果同时使用ReSharper和StyleCop,则应将它们设置为一起工作,这意味着以相同的方式接受和验证代码。

答案 1 :(得分:1)

这是一个主观问题,所以这是我的主观回答:我同意Resharper并认为this是多余的。我个人使用下划线为字段名称添加前缀:

public class Foo
{
    private readonly string _name;

    public Foo(string name)
    {
        _name = name;
    }
}

然后我配置静态分析工具以遵守我使用的约定。

答案 2 :(得分:0)

不同的工具提出了不同的建议。我建议制作您自己的编码指南文档并与您的团队分享(从现有的编码约定开始)。然而,一个很好的起点是“框架设计指南”一书ISBN:978-0321545619

您还可以配置resharper以提供所需的警告/错误,并让所有团队成员使用相同的resharper配置,以便他们获得相同的错误/警告。

不要只做编码指南想要的所有事情,根据情况,有时候最好不要坚持使用它,但如果你不遵守指南,请务必评论原因。

他们更像是精明的指导方针;)。

答案 3 :(得分:0)

我认为使用FxCop更有用,因为它是由Microsoft提供的,所以什么比微软更真实。 http://msdn.microsoft.com/en-us/library/bb429476(v=vs.80).aspx

答案 4 :(得分:0)

  

我需要检查更一致的参考,以选择正确/最佳。是否存在“定义”正确约定的此类资源?

这些问题无法解答。参考文献无法帮助您“选择正确的”。惯例本质上没有“正确性”属性 - 我们使用约定来任意决定对那些没有正确答案的问题的一致方法。

如果您想在此处遵循StyleCop的指南,您可以配置ReSharper以停止抱怨使用this。这是ReSharper | Options | Code Inspection | Inspection Severity - 或者,我相信,有一个特定的'StyleSop for ReSharper'插件可以为你处理。

相关问题