gpt4 book ai didi

c# - 为什么我不能将 [SuppressMessage(…)] 中的常量与 ReSharper 一起使用?

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:37 25 4
gpt4 key购买 nike

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

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 根据源代码的语法执行分析并报告警告。因此,它专门寻找 "ReSharper""InconsistentNaming" 等形式的字符串标记。为了让它理解您的常量,它会执行代码的语义分析,例如,通过确定 Rules.ReSharper 是什么,然后当它发现它是一个字符串常量时它的值是什么。

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

关于c# - 为什么我不能将 [SuppressMessage(…)] 中的常量与 ReSharper 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com