【问题标题】:Suppress CS0169 and CS0649抑制 CS0169 和 CS0649
【发布时间】:2016-06-04 13:01:54
【问题描述】:

我有几个类的字段只能通过反射分配或使用。因此,这些字段会导致以下警告:

CS0169: The field [...] is never used
CS0649: Field [...] is never assigned to, and will always have its default value 0

一种解决方案是在所有这些类上使用 SuppressMessageAttribute,但这似乎不干净,因为相关类已经具有自定义属性。

我更喜欢这样的:

[KeepMyFields]
class SomeClass
{
    int usedField;
}

class KeepMyFieldsAttribute : System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
{
    // [...]
}

但是,SuppressMessageAttribute 是密封的。除了向每个相关类添加代码 sn-p 之外,我还有哪些其他选择?自定义 MSBuild 任务是否合适,或者有更简单的方法吗?

【问题讨论】:

  • 那里提出的解决方案是在每个类中添加#pragma。这似乎不是一种干净的方式,将所有字段转换为属性也不是。

标签: c# code-analysis


【解决方案1】:

如果您正在寻找“干净”的解决方案,您可以在项目构建选项中抑制整个项目中所有此类警告: 当然,这也会隐藏其他类的警告(您可能不希望出现这种情况),但您可以将所有有问题的类移至一个单独的项目并应用此设置。

【讨论】:

  • 在新的sdk项目样式中,save会在csproj中添加一个projectGroup 1701;1702; 5001
猜你喜欢
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 2021-01-23
  • 1970-01-01
相关资源
最近更新 更多