使用[ComVisible()]
和[ComVisibleAttribute()]
有什么区别?他们做的完全一样,所以有什么区别呢?
谢谢。
最佳答案
.NET中的通用约定是,所有属性类的后缀为Attribute
-因此,实际的类名称为ComVisibleAttribute
。这适合扩展类并保留其名称作为后缀的最佳实践。
但是,这会使属性名称变得冗长而笨拙,并且使您的代码杂乱无章。这就是C#编译器知道指定属性的原因,它会搜索给定的显式名称,如果找不到,则会在其后附加Attribute
。
如果检查代码的编译源,您会发现[ComVisible]
和[ComVisibleAttribute]
都编译为完全相同的东西。只是编译器为我们提供了一些语法上的便利,以避免在每个地方都看到“属性”一词。