При просмотре С# Language Specification 5.0 стало известно, что вы можете определить extern event
. Я привык к методам extern для вызова платформы и встроенным обратным вызовам. Я не сталкивался с этой концепцией за одиннадцать лет в мире .NET.
- Что событие
extern
взаимодействует с? - Предоставляет ли она возможность подписаться на какое-то собственное событие?
- Вы можете поднять такое событие?
- Какие проблемы он решает, заработав свое место на языке С#?
Я просмотрел спецификации для "extern" и обнаружил, что свойства, индексы, конструкторы, статические конструкторы, финализаторы (!) и даже операторы (!) могут быть extern
. Поля не могут. (Я также узнал, что псевдоним пространства имен может быть "extern", но это означает что-то совсем другое.)
Изменить: Это проясняет ситуацию. Таким образом, extern
применяется не к концепции события или концепции свойства, а к составным методам. Это верно? Разве COM-события отличаются от событий DllImport
?