gpt4 book ai didi

c# - 为什么我不能在类上使用 ConditionalAttribute?

转载 作者:太空狗 更新时间:2023-10-30 00:31:51 24 4
gpt4 key购买 nike

我查看了 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com