Mic*_* II 5 c# attributes compiler-warnings
目标:在我使用自定义属性时删除编译器警告“CS0649”(从未分配字段)。
我有一个自定义属性(下面的代码只是示例):
[AttributeUsage(AttributeTargets.Field)]
public class MyCustomAttribute : Attribute { }
Run Code Online (Sandbox Code Playgroud)
然后我在一个字段上使用该属性:
[MyCustom]
private readonly SomeType someType;
Run Code Online (Sandbox Code Playgroud)
我的申请会自动填写 someType一个值,因此我们无需担心初始化它。
我仍然会在 Visual Studio 下看到一条波浪线,someType并且警告消息“字段“someType”从未分配给,并且它的默认值始终为空。
是否有我可以添加的属性或其他方法来MyCustomAttribute删除此编译器警告?
注意:我不想修改该字段或键入该字段在更远的范围内。我只是想添加属性,然后警告消失。
消除警告只有两种方法:
#pragma warning disable/ restore,或但仅此而已。
但这就是为什么它是警告而不是错误。警告是用来标记可疑的东西,但很可能是合法的。从未在类本身中设置的字段是可疑的,但不一定是错误。
这些#pragma指令是摆脱它们的最佳方法,因为它明确表明您已承认该警告并认为其毫无根据。