1

using[ComVisible()]和 和有什么不一样[ComVisibleAttribute()]?他们做的事情完全一样,那有什么区别呢?

谢谢你。

4

1 回答 1

4

.NET 中的常见约定是所有属性类都以后缀结尾Attribute- 所以实际的类名是ComVisibleAttribute. 这符合扩展类并将其名称保留为后缀的最佳实践。

但是,这会使属性名称变得冗长且笨拙,并且会使您的代码因大量样板词而变得混乱。这就是为什么 C# 编译器知道当一个属性被指定时,它会搜索给定的显式名称,如果没有找到,它会附加Attribute到它上面。

如果您检查代码的编译源代码,您会看到两者[ComVisible][ComVisibleAttribute]编译成完全相同的东西。只是编译器给了我们一些语法糖来避免到处看到 Attribute 这个词。

于 2016-06-20T06:48:02.663 回答