Sno*_*ppy 3 c# delegates chaining
我正在寻找一种方法来链接几个代表,所以一个人的结果成为下一个的输入.我试图在方程求解程序中使用它,其中部分通过不同的方法完成.这个想法是,当你构建方程式时,程序会添加代理并按特定顺序链接它们,因此可以正确解决.如果有更好的方法来解决问题,请分享.
这可能有所帮助:
public static Func<T1, TResult> Compose<T1, T2, TResult>(Func<T1, T2> innerFunc, Func<T2, TResult> outerFunc) {
return arg => outerFunc(innerFunc(arg));
}
Run Code Online (Sandbox Code Playgroud)
这将执行函数组合,运行innerFunc并将结果传递给outerFunc提供初始参数时:
Func<double, double> floor = Math.Floor;
Func<double, int> convertToInt = Convert.ToInt32;
Func<double, int> floorAndConvertToInt = Compose(floor, convertToInt);
int result = floorAndConvertToInt(5.62);
Func<double, int> floorThenConvertThenAddTen = Compose(floorAndConvertToInt, i => i + 10);
int result2 = floorThenConvertThenAddTen(64.142);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |