C# 为什么可以';我是否将[SuppressMessage(…;)]中的常量与ReSharper一起使用?
我希望将抑制ReSharper警告所需的字符串作为常量放在一个类中,这样我就不需要将字符串全部放在一个类中,并且可以从find all references函数中获益,以了解我抑制了哪个规则多少次C# 为什么可以';我是否将[SuppressMessage(…;)]中的常量与ReSharper一起使用?,c#,resharper,C#,Resharper,我希望将抑制ReSharper警告所需的字符串作为常量放在一个类中,这样我就不需要将字符串全部放在一个类中,并且可以从find all references函数中获益,以了解我抑制了哪个规则多少次 public class Rules { public const string ReSharper= "ReSharper"; public const string InconsistentNaming = "InconsistentNaming"; } 装饰我的会员如下 public
public class Rules
{
public const string ReSharper= "ReSharper";
public const string InconsistentNaming = "InconsistentNaming";
}
装饰我的会员如下
public class MyClass
{
[SuppressMessage(Rules.ReSharper, Rules.InconsistentNaming)]
protected uint v { get; }
}
使ReSharper仍然抱怨名称以小写字母开头的属性。仅当使用
[SuppressMessage("ReSharper", "InconsistentNaming")]
重拾器警告消失。有没有办法让它在上面提到的庄园中使用常量工作?ReSharper根据源代码的语法执行分析,并报告警告。因此,它专门寻找形式为
“ReSharper”
,“unconsistentNaming”
等的字符串标记。为了理解您的常量,它必须对代码执行语义分析,例如通过确定Rules.ReSharper
是什么,然后当它发现它是字符串常量时,它的值是什么
后一种分析要慢得多,并且会影响ReSharpers分析的性能。所以它不能这样做,所以你必须指定文字字符串。这个主意很酷,而且你可以理解你会想要这样做,我认为这是不可能的,因为它必须在运行之前获得值(我知道它的常数:p)听起来可能类似?@mjwills我也问过这个问题