.Net デリゲートの多くの使用法は、インターフェイスと匿名クラスの組み合わせを使用して Java でエミュレートできることは知っていますが、デリゲートが真の利点を持ち、同等の Java がない状況はありますか?
2 に答える
9
- ラムダ式と匿名メソッドを使用した C# のより簡潔な構文
- 型推論
- 言語でのデリゲートの一般的なサポート (メソッド グループの変換など)
- 言語をサポートするマルチキャスト デリゲート
- イベント (デリゲートに基づくオブザーバー パターンの単純な構文)
- システムスレッドプールによる非同期実行
- 言語サポート付きの式ツリー
はい、多くのことは Java で実行できますが、面倒です。
ラムダ式や拡張メソッドなどを使わずに LINQ クエリを書くことを想像してみてください。同じことが、C# や .NET でデリゲートが自然なソリューションである他の多くの場所にも当てはまります。慣用的な Java ソリューションでは、非常に醜いため、匿名の内部クラスを使用しないことがよくあります。
于 2009-08-07T19:30:29.223 に答える
0
C#の匿名メソッドを使用した実際のクロージャー
Java の匿名クラスでは、外側のスコープから使用するすべての変数を final として宣言する必要があります。
于 2009-08-07T22:28:28.490 に答える