Это целевая спецификация атрибута .
В вашем коде использование этого не является действительно необходимым, так как в этом месте есть только одна разрешенная цель для этого атрибута. Атрибут Obsolete
может быть помещен в тип, метод или свойство, но если он размещен в свойстве, то разрешается только (112) целевой спецификатор property
(и используется неявно).
Наиболее практичным использованием для этого является спецификатор цели assembly
, где вы можете установить конфигурацию сборки с помощью атрибутов:
[assembly: AssemblyProduct("Foo bar")]
Вы можете установить разрешенные цели для своих пользовательских атрибутов, используя AttributeUsage
.
Спецификация атрибута определяет это как attribute target
.
Определенные контексты допускают указание атрибута для нескольких целей. Программа может явно указать цель путем включения атрибута attribute_target_specifier. Когда атрибут размещается на глобальном уровне, требуется global_attribute_target_specifier. Во всех других местах применяется разумное значение по умолчанию, но атрибут attribute_target_specifier может использоваться для подтверждения или отмены значения по умолчанию в определенных неоднозначных случаях (или просто для подтверждения значения по умолчанию в не неоднозначных случаях).
blockquote>В нем также говорится, что во многих случаях, подобно тому, который вы упоминаете, это разрешено, но не обязательно.
В других контекстах включение атрибута attribute_target_specifier разрешено, но не обязательно. Например, объявление класса может включать или не указывать тип спецификатора.
BLOCKQUOTE>