Coding style Resharper StyleCop SA1306和Func<;T>;代表 公共类MyClass { 专用Func密钥转换器; 公共MyClass(Func keyTransformer) { KeyTransformer=KeyTransformer; } 公共字符串DoSomething(字符串输入) { 返回键变压器(输入); } }

Coding style Resharper StyleCop SA1306和Func<;T>;代表 公共类MyClass { 专用Func密钥转换器; 公共MyClass(Func keyTransformer) { KeyTransformer=KeyTransformer; } 公共字符串DoSomething(字符串输入) { 返回键变压器(输入); } },coding-style,resharper,stylecop,capitalization,casing,Coding Style,Resharper,Stylecop,Capitalization,Casing,显然,Resharper建议我将“字段”重命名为_keyTransformer 但写这样的东西感觉是不对的: string newKey = _keyTransformer("input"); 所以问题1是: 帕斯卡套管还是骆驼套管? 问题2是(如果是pascal): 我如何告诉Resharper可以将pascal大小写用于Func?下一个阅读代码的人会更清楚哪种样式 在本例中,您正在做一些有点不寻常的事情(调用存储在字段中的方法),因此语法使其脱颖而出这一事实并不是坏事。它是私有字段,所以是

显然,Resharper建议我将“字段”重命名为_keyTransformer

但写这样的东西感觉是不对的:

string newKey = _keyTransformer("input");
所以问题1是: 帕斯卡套管还是骆驼套管?

问题2是(如果是pascal):
我如何告诉Resharper可以将pascal大小写用于Func?

下一个阅读代码的人会更清楚哪种样式


在本例中,您正在做一些有点不寻常的事情(调用存储在字段中的方法),因此语法使其脱颖而出这一事实并不是坏事。

它是私有字段,所以是驼峰式的

规则SA1306:变量名和专用字段名必须以小写字母开头:{0}

(在R#的情况下)建议加下划线是不明显的

规则SA1309:字段名不能以下划线开头

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

公共类MyClass
{
专用Func密钥转换器;
公共MyClass(Func keyTransformer)
{
this.keyTransformer=keyTransformer;
}
公共字符串DoSomething(字符串输入)
{
返回键变压器(输入);
}
}

您之所以有字段而不是自动属性,有什么特殊原因吗?如果他不想在MyClass之外公开“KeyTransformer”,为什么要使用自动属性?只是不要说“私有财产”:P