通常我们使用各种静态代码分析工具来分析我们的代码以进行验证。但我看到了一些相互矛盾的情况。
作为一个例子,如果我们使用类变量,StyleCop将建议我们使用
this.Name = myName
代替,
Name = myName
但这会弹出Resharper错误,“Redundant qualifier”并建议不要使用“this”。符号
因此,在这种情况下,我需要检查更一致的引用,以选择正确/最佳。是否存在“定义”正确约定的此类资源?
答案 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'插件可以为你处理。