我查看ConditionalAttribute
声明,它是这样声明的:
我发现 JavaScript 代码是这样的:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,
AllowMultiple = true)]
public sealed class ConditionalAttribute : Attribute {
//whatever
}
并AttributeTargets.Class
声称意味着属性可以应用于一个类。所以我尝试了这个:
[Conditional("DEBUG")]
class MyClass
{
}
但编译器发出以下错误
错误 CS1689:属性“System.Diagnostics.ConditionalAttribute”仅对方法或属性类有效
和 MSDN 说
此错误仅发生在 ConditionalAttribute 属性中。如消息所述,此属性只能用于方法或属性类。例如,尝试将此属性应用于类将生成此错误。
所以看起来有一个属性被声明为适用于一个类,但试图将它应用到一个类会导致编译错误。
这怎么可能?这是一些硬连线的特殊情况还是什么?