我在C#类中有一些字段,我使用反射初始化。编译器显示CS0649警告:
字段
foo' is never assigned to, and will always have its default value
null'(CS0649)(Assembly-CSharp)
我只想禁用这些特定字段的警告,并且仍然会为此类的其他类和其他字段显示警告。 可以为整个项目禁用CS0649,还有更细粒度的东西吗?
答案 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
(您可以更改数字以匹配您想要的任何警告)
注意:如果您使用Unity,这不会禁用Unity控制台中的警告(我仍在研究如何删除警告)
这里有一些Unity documentation,具有更多信息