【发布时间】:2014-01-20 19:26:35
【问题描述】:
C# 3 为我们带来了扩展方法。
但是,其他语言(例如 VB.NET)也通过在必须在 VB.NET 模块中声明的方法之上指定属性声明来实现扩展方法。
此外,您可以在 C++/CLI 中使用扩展方法。
那么,我想知道扩展方法是语言特性还是 CLR 中内置的特性?
我猜这是一个编译器技巧,因为您甚至可以将它们作为声明它们的类型的普通静态方法调用,因此必须是特定于语言的功能(并且必须由 Microsoft 在 VB.NET、C# 中实现和 C++ 扩展只是为了统一起见,但对于任何其他想要针对 CLR 的语言来说都不是必需的),但我不能确定。
【问题讨论】: