【发布时间】:2016-06-20 06:44:16
【问题描述】:
使用 [ComVisible()] 和 [ComVisibleAttribute()] 有什么区别?他们做的事情完全一样,那有什么区别呢?
谢谢。
【问题讨论】:
标签: c# attributes comvisible
使用 [ComVisible()] 和 [ComVisibleAttribute()] 有什么区别?他们做的事情完全一样,那有什么区别呢?
谢谢。
【问题讨论】:
标签: c# attributes comvisible
.NET 中的通用约定是以后缀Attribute 结束所有属性类 - 所以实际的类名称是ComVisibleAttribute。这符合扩展类并将其名称保留为后缀的最佳实践。
但是,这会使属性名称变得冗长且笨拙,并且会使您的代码因大量样板词而变得混乱。这就是为什么 C# 编译器知道,当一个属性被指定时,它会搜索给定的显式名称,如果没有找到,它会将 Attribute 附加到它上面。
如果您检查代码的编译源代码,您会发现[ComVisible] 和[ComVisibleAttribute] 编译为完全相同相同的东西。只是编译器给了我们一些语法糖来避免到处看到 Attribute 这个词。
【讨论】: