我在使用反射初始化的 C# 类中有一些字段。编译器为它们显示 CS0649 警告:
字段
foo' is never assigned to, and will always have its default value
null' (CS0649) (Assembly-CSharp)
我只想禁用这些特定字段的警告,并且仍然让警告显示给其他类和此类的其他字段。整个项目都可以禁用CS0649,还有更细粒度的吗?
我在使用反射初始化的 C# 类中有一些字段。编译器为它们显示 CS0649 警告:
字段
foo' is never assigned to, and will always have its default value
null' (CS0649) (Assembly-CSharp)
我只想禁用这些特定字段的警告,并且仍然让警告显示给其他类和此类的其他字段。整个项目都可以禁用CS0649,还有更细粒度的吗?
您可以使用#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
}
有关扩展答案,请参阅在 C# 中抑制“从未使用”和“从未分配给”警告。
我相信值得注意的是,警告也可以通过使用内联初始化来抑制。这使您的代码更加混乱。
public class MyClass
{
// field declarations for which to disable warning
private object foo = null;
// rest of class
}
//disable warning here
#pragma warning disable 0649
//foo field declaration
//restore warning to previous state after
#pragma warning restore 0649
public class YouClass
{
#pragma warning disable 649
string foo;
#pragma warning restore 649
}