ComVisible() против ComVisibleAttribute()

Какая разница между использованием [ComVisible()] а также [ComVisibleAttribute()]? Они делают то же самое, так в чем же разница?

Спасибо.

1 ответ

Решение

Общим соглашением в.NET является завершение всех классов атрибутов суффиксом. Attribute - так что настоящее имя класса ComVisibleAttribute, Это соответствует лучшим практикам для расширения класса и сохранения его имени в качестве суффикса.

Однако это делает имена атрибутов длинными и громоздкими и загромождает ваш код большим количеством шаблонных слов. Вот почему компилятор C# знает, что когда указан атрибут, он ищет как заданное явное имя, так и если он не найден, он добавит Attribute к этому.

Если вы проверите скомпилированный исходный код для своего кода, вы увидите, что оба [ComVisible] а также [ComVisibleAttribute] скомпилировать точно так же. Это просто компилятор, дающий нам некоторый синтаксический сахар, чтобы не видеть слово Attribute везде.

Другие вопросы по тегам