我查阅了ConditionalAttribute
的声明,它是这样声明的:
我找到了以下JavaScript代码:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,
AllowMultiple = true)]
public sealed class ConditionalAttribute : Attribute {
//whatever
}
AttributeTargets.Class
被认为是指 Attribute 可以应用于类。 因此我尝试了以下代码:
[Conditional("DEBUG")]
class MyClass
{
}
但编译器会发出以下错误:
MSDN表示:error CS1689:属性“System.Diagnostics.ConditionalAttribute”仅对方法或属性类有效
因此,看起来已声明了适用于类的属性,但尝试将其应用于类会导致编译错误。只有在 ConditionalAttribute 属性中才会出现此错误。正如消息所述,此属性仅可用于方法或属性类。例如,尝试将此属性应用于类将生成此错误。
这是如何可能的?这是一些硬编码的特殊情况吗?