public delegate TResult Func<TArg0, TResult>(TArg0 arg0)
Func<int, bool> myFunc = x => x == 5;
bool result = myFunc(4); // returns false of course
この例がわかりません。
このコードはどういう意味ですか?
public delegate TResult Func<TArg0, TResult>(TArg0 arg0)
これは一般的なデリゲート定義であり、1 つの入力引数を持つ非 void メソッドに一致します。ラムダ関数 (匿名メソッド) は、この署名と一致します。
ところで、このデリゲートを作成する必要はありません - .NET フレームワークに既に存在します:
Func<T, TResult>
これまでにデリゲートに関するチュートリアルを読みましたか?
行の意味: TResult を返し、TArg0 引数を取る関数のデリゲート型。これはさまざまなメソッドを割り当てることができる一般的なデリゲートであるため、次のことがすべて可能です。
int Foo (int i);
double Foo (string str);
...
TArg0 arg0
関数パラメーターです (パラメーター名: arg0、パラメーターの型: 汎用、現時点では不明)。したがって、 TArg0 は、実際に使用するときにコンパイラによって推測double Foo(string str)
されますTArg0 = string
。