Ключевое слово Описание

assembly Атрибут относится ко всей сборке

field Атрибут относится к полю

event Атрибут относится к событию

method Атрибут относится к методу

рагаm Атрибут относится к параметрам метода

property Атрибут относится к свойству

return Атрибут относится к возвращаемому значению

type Атрибут относится к классу или структуре

Пусть, например, перед методом описан гипотетический атрибут ABC:

[ABC]

public void Do() {... }

По умолчанию он относится к методу. Чтобы указать, что атрибут относится не к методу, а к его возвращаемому значению, следует написать:

[return:ABC]

public void Do() {... }

Атрибут может иметь параметры. Они записываются в круглых скобках через запятую после имени атрибута и бывают позиционными и именованными. Име­нованный параметр указывается в форме имя = значение, для позиционного про­сто задается значение. Например, для использованного в следующем фрагмен­те кода атрибута CLSCompliant задан позиционный параметр true. Атрибуты, относящиеся к сборке, должны располагаться непосредственно после директив using, например:

using System;

[assembly:CLSCompliant(true)] namespace ConsoleApplication1 {...

Атрибут [CLSCompliant] определяет, удовлетворяет программный код соглашени­ям CLS (Common Language Specification) или нет.

Стандартные атрибуты, как и другие типы классов, имеют набор конструкторов, которые определяют, каким образом использовать (специфицировать) атрибут. Фактически, при использовании атрибута указывается наиболее подходящий конструктор, а величины, не указанные в конструкторе, задаются через имено­ванные параметры в конце списка параметров.

Стандартный атрибут [STAThread], старательно удаленный из всех листингов в этой книге, относится к методу, перед которым он записан. Он имеет значение только для приложений, использующих модель СОМ, и задает модель потоков в рамках модели СОМ. Пример применения еще одного стандартного атрибута, [Conditional], приведен далее в разделе «Директивы препроцессора».

Атрибуты уровня сборки хранятся в файле AssemblyInfo.cs, автоматически созда­ваемом средой для любого проекта. Для явного задания номера версии сборки можно записать атрибут [AssemblyVersion], например:

[assembly; AssemblyVersion("1.0.0.0")]

Создание пользовательских атрибутов выходит за рамки темы этого учебника. Интересующиеся могут обратиться к книге [27].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: