Недавно я перечитывал несколько старых сообщений на Eric Lippert смешно удивительный блог и наткнулся на этот лакомый кусочек:
Значительная часть ключевых слов С# используется в двух или более способы: фиксированные, в, частичные, вне, в, новые, делегировать, где, используя, class, struct, true, false, base, this, event, return и void all имеют как минимум два разных значения.
Просто для удовольствия мои коллеги, и я спросил себя, и я смог придумать хотя бы два использования для всех, кроме одного из этих ключевых слов. То, что меня тошнило, event
.
Очевидно, что использование event
при объявлении поля члена типа делегата превращает его в событие (например, отображаются только операторы добавления/удаления). Что означает другое значение события?
ИЗМЕНИТЬ (ОТВЕТ):
Благодаря @Hans Passant я выкопал этот бит из С# spec, который объясняет другое использование события - как (по умолчанию ) спецификатор атрибута атрибута для атрибутов события (из раздела 17.2):
Атрибут, указанный в объявлении события, который опускает событие аксессоры могут применяться к объявляемому событию, к связанным (если событие не является абстрактным) или связанным с ним добавлением и удалить методы. В отсутствие атрибута-целевого-спецификатора атрибут применяется к событию. Наличие
event
attribute-target-specifier указывает, что атрибут применяется к мероприятие; наличие спецификатора атрибутаfield
указывает что атрибут применяется к полю; и наличиеmethod
attribute-target-specifier указывает, что атрибут применяется к методам.