添加自定义属性时,如何删除CS0649编译器警告?

时间:2018-12-11 18:50:35

标签: c# attributes compiler-warnings

目标:要删除使用我的自定义属性时出现的编译器警告“ CS0649”(字段从未分配给它)。

我有一个自定义属性(下面的代码仅是示例):

[AttributeUsage(AttributeTargets.Field)]
public class MyCustomAttribute : Attribute { }

然后我在字段上使用该属性:

[MyCustom]
private readonly SomeType someType;

我的应用程序将自动用一个值填充someType,因此我们不必担心对其进行初始化。

someType下的Visual Studio中,我仍然会出现弯曲的行,并且警告消息“字段“ someType”从未分配给它,并且始终将其默认值设置为null。”

是否可以添加到MyCustomAttribute的属性或其他方式可以删除此编译器警告?

注意:我不想修改该字段或键入该字段在更远的范围内。我只想添加属性,警告就会消失。

1 个答案:

答案 0 :(得分:1)

只有两种方法可以消除警告:

  1. 使用#pragma warning disable / restore,或
  2. 在项目的“属性”->“生成”->中为整个项目禁止显示警告,并将警告编号置于“禁止显示警告”中。

就是这样。

但这就是为什么这是警告而不是错误。警告是用来标记可疑的东西,但很可能是合法的。在类本身中从未设置过的字段是可疑的,但不一定是错误。

#pragma指令是摆脱它们的最佳方法,因为它明确表明您已经确认警告并且认为警告没有根据。