Resharper StyleCop SA1306和Func <t>委托的套管</t>

时间:2013-11-13 11:58:08

标签: coding-style resharper stylecop capitalization casing

public class MyClass
{
    private Func<string, string> KeyTransformer;

    public MyClass(Func<string, string> keyTransformer)
    {
        KeyTransformer = keyTransformer;
    }

    public string DoSomething(string input)
    {
        return KeyTransformer(input);
    }
}

显然Resharper建议我将“field”重命名为_keyTransformer。

感觉感觉错误地写了这样的东西:

string newKey = _keyTransformer("input");

问题#1是: Pascal套管或骆驼套管?

问题#2是(如果是pascal): 我如何告诉Resharper可以为Func设置pascal外壳?

2 个答案:

答案 0 :(得分:0)

下一个阅读代码的人会更清楚哪种风格?

在这种情况下,你做了一些不寻常的事情(调用存储在字段中的方法),所以语法使它脱颖而出的事实并不是坏事。

答案 1 :(得分:0)

这是私人领域所以骆驼案。

  

规则SA1306:变量名称和私有字段名称必须以小写字母开头:{0}。

(在R#的情况下)暗示下划线并不明显。

  

规则SA1309:字段名称不得以下划线开头。

所以你必须改变你的R#的行为:) 在我的情况下安装StyleCop(4.7.47)并在VS中打开项目后,R#通知我,一些规则与StyleCop不一致,并询问我是否要更改它。 所以我在R#和StyleCop中有相同的规则(例如私有字段的命名约定)

public class MyClass
{
    private Func<string, string> keyTransformer;

    public MyClass(Func<string, string> keyTransformer)
    {
        this.keyTransformer = keyTransformer;
    }

    public string DoSomething(string input)
    {
        return keyTransformer(input);
    }
}