Зарезервированные имена членов в C#

Некоторые возможности языка С# на самом деле являются “синтаксическим сахаром” (или “синтаксическими обертками”), который сводится к вызовам методов в коде IL. Данные вызовы можно увидеть, только открыв сгенерированную сборку в инструменте, подобном ILDASM. Об этом нужно помнить, чтобы случайно не попытаться объявить метод, имя которого вступит в конфликт с одним из зарезервированных имен методов.

Такие синтетические сокращения касаются свойств, событий и индексаторов. Если вы попытаетесь объявить метод с одним из специальных имен, одновременно имея свойство, событие или индексатор, где тот же метод объявляется внутри, то компилятор сообщит об ошибке дублирования идентификаторов.

Зарезервированные имена для свойств
Для свойства по имени Prop типа I следующие сигнатуры зарезервированы под его реализацию:

1
2
I get_Prop();
void set_Prop ( I value ) ;

Зарезервированные имена для индексаторов

Если класс содержит индексатор типа I и принимает список параметров, представленный Params, он будет содержать следующие зарезервированные имена методов:

1
2
I get_Item( Params ) ;
void set_Item( Params, I value );

Зарезервированные имена для деструкторов

Если класс определен с финализатором (с применением синтаксиса деструктора), он будет содержать определение следующего метода:

1
void Finalize ();

Зарезервированные имена для событий

Если класс включает определение события типа I по имени Event, то в таком классе зарезервированы следующие методы:

1
2
void add_Event ( I callback );
void remove_Event ( I callback ) ;

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100