在C#中,属性可以应用于静态类,方法还是属性?

时间:2010-06-16 05:32:31

标签: c# static attributes

可以将属性应用于c#中的静态类,方法或属性吗?像:

[MyAttribute]
public static MyMethods(string str) ...

5 个答案:

答案 0 :(得分:6)

这里确实有两个问题

一般来说,属性是否可以应用于类,方法或属性?

是属性可以有效地针对任何这些构造(以及许多其他构造)

特定属性是否有效?

这取决于具体的属性。属性可以控制它们可以通过AttributeTargets枚举应用于哪些构造,因此将特定属性应用于特定构造是非法的。

例如,ParamArrayAttribute只能定位参数,而ObsoleteAttribute几乎可以定位任何东西(除了程序集,可能还有一个我缺少的)

答案 1 :(得分:2)

是的,您可以将属性应用于静态类,方法,属性。

示例:

[MyAttribute("hello")]
      public static string SayHello(string str)
      {
         return str;
      }

答案 2 :(得分:1)

是。大概。试着看看。

我想知道你为什么怀疑它。

答案 3 :(得分:1)

是的,它可以应用。

答案 4 :(得分:0)

如果它可以应用于静态类,则取决于属性。查看AttributeTarget。因此,它是完全合法的,并允许使用Attributes修饰静态类或方法。