Я недавно перечитывал некоторые старые посты в блоге Эрика Липперта смехотворно удивительно и наткнулся на этот кусок :
Значительная часть ключевых слов C # используется в двух или более
способы: фиксированный, в, частичный, из, в, новый, делегировать, где, используя,
класс, структура, истина, ложь, база, это, событие, возврат и аннулирование всех
имеют как минимум два разных значения.
Просто ради интереса, мы с коллегами проверили себя, и мне удалось придумать как минимум два варианта использования всех этих ключевых слов, кроме одного. Тот, который поставил меня в тупик, это event
.
Очевидно, что использование event
при объявлении поля члена типа делегата превращает его в событие (например, отображаются только операторы добавления / удаления). Что такое другое значение события?
РЕДАКТИРОВАТЬ (Ответ):
Благодаря @Hans Passant я откопал этот бит из C # spec , который объясняет другое использование события - как (по умолчанию) целевой атрибут атрибута для атрибутов на событии (из раздела 17.2). ):
Атрибут, указанный в объявлении события, которое пропускает событие
средства доступа могут применяться к объявленному событию, к
поле (если событие не является абстрактным), или к соответствующему дополнению и
удалить методы. В отсутствие атрибут-целевой-спецификатор ,
Атрибут применяется к событию. Наличие event
атрибут-целевой-спецификатор указывает, что атрибут применяется к
событие; наличие field
атрибут-target-спецификатор указывает
что атрибут применяется к полю; и наличие
method
атрибут-целевой-спецификатор указывает, что атрибут применяется
к методам.