我查看了 ConditionalAttribute
声明,它是这样声明的:
我发现 JavaScript 代码是这样的:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,
AllowMultiple = true)]
public sealed class ConditionalAttribute : Attribute {
//whatever
}
和 AttributeTargets.Class
声称意味着 Attribute 可以应用于类。 所以我尝试了这个:
[Conditional("DEBUG")]
class MyClass
{
}
但是编译器报错
error CS1689: Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes
MSDN 说
This error only occurs with the ConditionalAttribute attribute. As the message states, this attribute can only be used on methods or attribute classes. For example, trying to apply this attribute to a class will generate this error.
所以看起来有一个属性声明适用于一个类,但试图将它应用到一个类会导致编译错误。
这怎么可能?那是一些硬连线的特殊情况还是什么?
最佳答案
好的:
[Conditional("DEBUG")]
public void foo() { }
也可以:
[Conditional("DEBUG")]
public class BarAttribute : Attribute { }
不好:
[Conditional("DEBUG")]
public class Baz { }
ConditionalAttribute
可以应用于类,但是附加限制类是属性类。
如果你想根据条件定义删除整个类,那么不,你不能这样做。它不受支持。您必须单独标记每个方法。
关于c# - 为什么我不能在类上使用 ConditionalAttribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934903/