0

私は最近、主にインターフェースと拡張メソッドに基づく API の設計について質問しました。

拡張メソッドを直接サポートしない .NET 言語、つまり、そのような API を操作するのが面倒になる言語はあるのでしょうか?

拡張メソッドは単なる静的メソッドであり、常にそのように呼び出される可能性が高いことは承知していますが、「拡張メソッドのサポート」とは、オブジェクトでメソッドを呼び出すための言語の構文へのより緊密な統合を意味します。C# で拡張メソッドを通常のメソッドのように使用できる方法。

C# と VB.NET 以外の一般的な .NET 言語のうち、拡張メソッドを実際にサポートしているものと、サポートしていないものはどれですか?

4

1 に答える 1

3

F#は、最近のバージョン (VS2010 に同梱されているバージョンなど) の拡張メソッドをサポートしています。「 C# で定義された拡張メソッドを F# コードから使用する」という質問に対するこの回答も参照してください。


PowerShell は、Extended Type System を介して拡張メソッドをサポートするように作成できます。


IronPythonは拡張メソッドをサポートしているようです...


IronRubyは、質問に対するこの回答「IronRuby 呼び出し C# 拡張メソッド - エラー - .NET 3.5 での互換性」によると、.NET 4 を必要とするバージョン 1.4 以降の拡張メソッドをサポートしていますusing_clr_extensions


IronScheme :拡張メソッドがありますが、C# 3 の拡張メソッドと同じメカニズムであるかどうかは完全にはわかりません。


Booは、「ブーで拡張メソッドを使用するにはどうすればよいですか」という質問に対するこの回答によると、バージョン 0.9.0 以降の拡張メソッドをサポートしています。


Nemerleも拡張メソッドをサポートしているようです ( Web サイトのページによると)。


Managed C++ : ( stakx の回答を拡張) Managed C++ は、この回答でわかるように拡張メソッドをサポートしています。


(この回答を自由に拡張して改善してください!)

于 2012-07-17T21:14:28.913 に答える