0

私はデリゲートの配列を作成しようとしていますが、クラス内のすべてのデリゲート メソッドを定義せずにそれを行うことができるかどうか疑問に思っていますが、メソッドは配列に格納されて渡されます。以下は構文での私の試みですが、機能していません。これを行う方法はありますか、それともメソッドを配列に格納しているクラスで従来どおりメソッドを定義する必要がある場合ですか?

 delegate void myDelegateType();
 myDelegateType[] myDelegateArray = new myDelegateType[3];
 myDelegateArray[0] = new myDelegateType(void myMethod1(){int i = 0;});
4

2 に答える 2

2

C# 2.0 では匿名メソッドが導入されました。

myDelegateArray[0] = new myDelegateType(delegate(){int i = 0;});

C# 3.0 ではラムダ式が導入されました。

myDelegateArray[0] = new myDelegateType(() => {int i = 0;});

両者の違いはごくわずかですが、読み書きが簡単なため、通常はラムダ式が好まれます。

于 2013-07-15T03:49:05.623 に答える