Атрибут может быть применен к статическому классу, методу или свойству в c#? Как:
[MyAttribute]
public static MyMethods(string str) ...
Здесь действительно есть два вопроса.
Можно ли вообще применить атрибуты к классам, методам или свойствам?
Да, атрибуты могут корректно нацеливаться на любую из этих конструкций (и многие другие)
Являются ли допустимо ли это для конкретного атрибута?
Это зависит от конкретного атрибута. Атрибуты могут контролировать, к каким конструкциям они могут применяться, через перечисление AttributeTargets
и, следовательно, делать незаконным применение определенного атрибута к определенной конструкции.
Например, ParamArrayAttribute
может указывать только параметры, в то время как ObsoleteAttribute
может нацеливаться практически на все (кроме сборок и, возможно, еще одного, которого мне не хватает)
Это зависит от атрибута, может ли он применяться к статическому классу. Посмотрите AttributeTarget . Таким образом, это совершенно законно и разрешено украшать статический класс или методы атрибутами.
Да, вы можете применить атрибут к статическому классу, методу, свойству.
пример:
[MyAttribute("hello")]
public static string SayHello(string str)
{
return str;
}
Да. Возможно. Просто попробуйте и посмотрите.
Интересно, почему вы в этом сомневаетесь?