对于特定的类字段,在C#中禁用/禁止警告CS0649

时间:2012-12-05 15:33:21

标签: c# suppress-warnings

我在C#类中有一些字段,我使用反射初始化。编译器显示CS0649警告:

  

字段foo' is never assigned to, and will always have its default value null'(CS0649)(Assembly-CSharp)

我只想禁用这些特定字段的警告,并且仍然会为此类的其他类和其他字段显示警告。 可以为整个项目禁用CS0649,还有更细粒度的东西吗?

5 个答案:

答案 0 :(得分:63)

您可以使用#pragma warning禁用然后重新启用特定警告:

public class MyClass
{
    #pragma warning disable 0649

    // field declarations for which to disable warning
    private object foo;

    #pragma warning restore 0649

    // rest of class
}

有关扩展答案,请参阅Suppressing “is never used” and “is never assigned to” warnings in C#

答案 1 :(得分:7)

//disable warning here
#pragma warning disable 0649

 //foo field declaration

//restore warning to previous state after
#pragma warning restore 0649

答案 2 :(得分:6)

我相信值得注意的是,使用字段初始化程序也可以抑制警告。这会使您的代码更加混乱。

public class MyClass
{
    // field declarations for which to disable warning
    private object foo = null;

    // rest of class
}

答案 3 :(得分:3)

public class YouClass
{
#pragma warning disable 649
    string foo;
#pragma warning restore 649
}

答案 4 :(得分:0)

如果要(而不是按脚本)禁用项目中的所有警告,请执行以下操作:

在YOUR_PROJECT_NAME / Assets目录中创建一个名为mcs.rsp的文本文件(用于编辑器脚本),其中包含内容(例如):

-nowarn:0649

(您可以更改数字以匹配您想要的任何警告)

Original answer

注意:如果您使用Unity,这不会禁用Unity控制台中的警告(我仍在研究如何删除警告)

这里有一些Unity documentation,具有更多信息