【问题标题】:Which .NET languages have syntactic support for extension methods?哪些 .NET 语言对扩展方法有语法支持?
【发布时间】:2012-07-17 21:14:28
【问题描述】:

我最近问了一个question about designing API that are mostly based on interfaces and extension methods

这让我想知道,是否存在不直接支持扩展方法的 .NET 语言,即使用此类 API 会变得很痛苦的语言?

我知道扩展方法只是静态方法,并且可能总是这样调用,但是“对扩展方法的支持”是指更紧密地集成到语言的语法中以调用对象上的方法;在 C# 中可以像使用常规方法一样使用扩展方法。

除了 C# 和 VB.NET 之外,哪些更流行的 .NET 语言实际上支持扩展方法,哪些不支持?

【问题讨论】:

    标签: .net extension-methods


    【解决方案1】:

    F# 支持最新版本(例如 VS2010 附带的版本)中的扩展方法。 另请参阅this answer 问题“使用 F# 代码中定义的 C# 扩展方法”。


    PowerShell can be made to sort of support extension methods 通过扩展类型系统。


    IronPython 似乎支持扩展方法...


    IronRubyaccording to this answer 到问题“IronRuby 调用 C# 扩展方法 - 错误 - .NET 3.5 中的兼容性”,支持从 1.4 版(需要 .NET 4)开始的扩展方法通过using_clr_extensions.


    IronSchemedoes have extension methods,但我不完全确定它们是否与 C# 3 中的扩展方法相同。


    Boo,根据this answer“How can i use Extension Methods in boo”的问题,从0.9.0版本开始支持扩展方法。


    Nemerle 似乎也支持扩展方法(根据a page on its website)。


    托管 C++:(扩展 stakx 的答案)托管 C++ 支持扩展方法,您可以在 this answer 中看到。


    (请随时扩展和改进此答案!)

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 2021-10-09
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多