首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不能在[SuppressMessage(…)]中使用常量和ReSharper一起?

为什么不能在[SuppressMessage(…)]中使用常量和ReSharper一起?
EN

Stack Overflow用户
提问于 2017-06-20 20:16:29
回答 1查看 148关注 0票数 1

我想将取消ReSharper警告所需的字符串作为常量放在一个类中,这样我就不需要到处放置字符串,并从查找所有引用函数中受益,以找出我取消了哪条规则的次数。

代码语言:javascript
复制
public class Rules
{
  public const string ReSharper= "ReSharper";
  public const string InconsistentNaming = "InconsistentNaming";
}

按照如下方式装饰我的成员

代码语言:javascript
复制
public class MyClass
{
  [SuppressMessage(Rules.ReSharper, Rules.InconsistentNaming)]
  protected uint v { get; }
}

使ReSharper仍然抱怨名称以小写字母开头的属性。仅当将成员归于

代码语言:javascript
复制
[SuppressMessage("ReSharper", "InconsistentNaming")]

ReSharper警告消失。有没有办法让它在上面提到的庄园里使用常量呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-20 20:25:44

ReSharper根据源代码的语法执行分析并报告警告。为了让它理解你的常量,它需要对代码进行语义分析,比如确定Rules.ReSharper是什么,然后当它发现它是一个字符串常量时,它的值是什么。

后一种分析要慢得多,并且会影响ReSharpers分析的性能。所以它不会这样做,所以你必须指定文字字符串。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44652818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档