В C # может ли атрибут применяться к статическому классу, методу или свойству? - PullRequest
5 голосов
/ 16 июня 2010

Может ли атрибут применяться к статическому классу, методу или свойству в c #? Как:

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

Ответы [ 5 ]

6 голосов
/ 16 июня 2010

Здесь действительно два вопроса

Можно ли вообще применять атрибуты к классу, методу или свойствам?

Да, атрибуты могут быть действительными для любогоиз этих конструкций (и многих других)

Допустимо ли это для определенного атрибута?

Это зависит от конкретного атрибута.Атрибуты могут контролировать, к каким конструкциям они могут быть применены с помощью перечисления AttributeTargets, и, следовательно, делают недопустимым применение определенного атрибута к определенной конструкции.

Например, ParamArrayAttribute может предназначаться только для параметров, в то время как ObsoleteAttribute может предназначаться для почти всего (кроме сборок и, возможно, еще одного, которого я пропускаю)

2 голосов
/ 16 июня 2010

Да, вы можете применить атрибут к статическому классу, методу, свойству.

пример:

[MyAttribute("hello")]
      public static string SayHello(string str)
      {
         return str;
      }
1 голос
/ 16 июня 2010

Да, это может быть применено.

1 голос
/ 16 июня 2010

Да. Наверное. Просто попробуй и посмотри.

Интересно, почему ты в этом сомневаешься?

0 голосов
/ 16 июня 2010

Это зависит от атрибута, если он может применяться к статическому классу.Проверьте AttributeTarget .Как таковой, он является абсолютно законным и позволяет декорировать статический класс или методы с помощью атрибутов.

...