ComVisible() против ComVisibleAttribute()
Какая разница между использованием [ComVisible()]
а также [ComVisibleAttribute()]
? Они делают то же самое, так в чем же разница?
Спасибо.
1 ответ
Общим соглашением в.NET является завершение всех классов атрибутов суффиксом. Attribute
- так что настоящее имя класса ComVisibleAttribute
, Это соответствует лучшим практикам для расширения класса и сохранения его имени в качестве суффикса.
Однако это делает имена атрибутов длинными и громоздкими и загромождает ваш код большим количеством шаблонных слов. Вот почему компилятор C# знает, что когда указан атрибут, он ищет как заданное явное имя, так и если он не найден, он добавит Attribute
к этому.
Если вы проверите скомпилированный исходный код для своего кода, вы увидите, что оба [ComVisible]
а также [ComVisibleAttribute]
скомпилировать точно так же. Это просто компилятор, дающий нам некоторый синтаксический сахар, чтобы не видеть слово Attribute везде.