publicstaticFunc<T1, T3>Compose<T1, T2, T3>(thisFunc<T1, T2> f1,Func<T2, T3> f2)
{
return x => f2(f1(x));
}
然后使用方式:
Func<int,double> log2 = x =>Math.Log2(x);
Func<double,string> toString = x => x.ToString();
var log2ToString = log2.Compose(toString);
Console.WriteLine(log2ToString(16));// 4
publicstaticFunc<T1, T3>Compose<T1, T2, T3>(thisFunc<T1, T2> f1,Func<T2, T3> f2)
{
return x => f2(f1(x));
}
然后使用方式:
Func<int,double> log2 = x =>Math.Log2(x);
Func<double,string> toString = x => x.ToString();
var log2ToString = log2.Compose(toString);
Console.WriteLine(log2ToString(16));// 4