目标:要删除使用我的自定义属性时出现的编译器警告“ CS0649”(字段从未分配给它)。
我有一个自定义属性(下面的代码仅是示例):
[AttributeUsage(AttributeTargets.Field)]
public class MyCustomAttribute : Attribute { }
然后我在字段上使用该属性:
[MyCustom]
private readonly SomeType someType;
我的应用程序将自动用一个值填充someType
,因此我们不必担心对其进行初始化。
在someType
下的Visual Studio中,我仍然会出现弯曲的行,并且警告消息“字段“ someType”从未分配给它,并且始终将其默认值设置为null。”
是否可以添加到MyCustomAttribute
的属性或其他方式可以删除此编译器警告?
注意:我不想修改该字段或键入该字段在更远的范围内。我只想添加属性,警告就会消失。
答案 0 :(得分:1)
只有两种方法可以消除警告:
#pragma warning disable
/ restore
,或就是这样。
但这就是为什么这是警告而不是错误。警告是用来标记可疑的东西,但很可能是合法的。在类本身中从未设置过的字段是可疑的,但不一定是错误。
#pragma
指令是摆脱它们的最佳方法,因为它明确表明您已经确认警告并且认为警告没有根据。