ComVisible() 与 ComVisibleAttribute()
ComVisible() vs ComVisibleAttribute()
使用 [ComVisible()]
和 [ComVisibleAttribute()]
有什么区别?他们做的事情完全一样,有什么区别?
谢谢。
.NET 中的通用约定是以后缀 Attribute
结束所有属性 class - 因此实际的 class 名称是 ComVisibleAttribute
。这符合扩展 class 并将其名称保留为后缀的最佳做法。
但是,这会使属性名称变得冗长而笨拙,并使您的代码因大量样板文字而变得杂乱无章。这就是为什么 C# 编译器知道当一个属性被指定时,它会搜索给定的显式名称,如果没有找到,它会附加 Attribute
到它。
如果您检查代码的编译源代码,您会发现 [ComVisible]
和 [ComVisibleAttribute]
编译成 完全 是一样的东西。这只是编译器给了我们一些语法糖,以避免到处看到属性这个词。
使用 [ComVisible()]
和 [ComVisibleAttribute()]
有什么区别?他们做的事情完全一样,有什么区别?
谢谢。
.NET 中的通用约定是以后缀 Attribute
结束所有属性 class - 因此实际的 class 名称是 ComVisibleAttribute
。这符合扩展 class 并将其名称保留为后缀的最佳做法。
但是,这会使属性名称变得冗长而笨拙,并使您的代码因大量样板文字而变得杂乱无章。这就是为什么 C# 编译器知道当一个属性被指定时,它会搜索给定的显式名称,如果没有找到,它会附加 Attribute
到它。
如果您检查代码的编译源代码,您会发现 [ComVisible]
和 [ComVisibleAttribute]
编译成 完全 是一样的东西。这只是编译器给了我们一些语法糖,以避免到处看到属性这个词。