さまざまな種類の Func デリゲートを変換するための組み込みメソッドはありますか? つまり、Func が必要であるが、Func を持っている (そして、T パラメーターに渡す必要がある値を持っている) とします。例えば:
static TREsult Foo<TResult>(Func<TResult> f)
{
// ...
TResult result = f();
// ...
return result;
}
static int MyFunc(int i)
{
return i;
}
void CallFoo()
{
Func<int> func = ConvertFunc(MyFunc, 1); // Does this family of methods exist?
int j = Foo(func);
}
私は次のように自分で書きました:
static Func<TResult> ConvertFunc<T, TResult>(Func<T, TResult> f1, T t)
{
return () => f1(t);
}
static Func<TResult> ConvertFunc<T1, T2, TResult>(Func<T1, T2, TResult> f2, T1 t1, T2 t2)
{
return () => f2(t1, t2);
}
// etc.
しかし、このようなメソッドのファミリが存在するかどうか (または、これを行うためのより良い方法がある場合でも) 疑問に思っています。
基本的に、私はこれを、メソッドにいくつかの定型コードがあり、その後に関数呼び出しが続く場合 (関数の数と型は異なりますが、戻り値の型は同じです)、その後にさらにボイラーが続く場合にこれを行っています。プレートコード。
すべての意見を歓迎します!ありがとう。