小编Wil*_*iam的帖子

C#流水线函数数组签名

c#的类型系统是否能够指定一个函数,该函数接受可以通过形成管道的多个函数?

效果类似于链接,而不是

var pipeline = a.Chain(b).Chain(c)
Run Code Online (Sandbox Code Playgroud)

一个人可以写

var pipeline = CreatePipeline(a,b,c)
Run Code Online (Sandbox Code Playgroud)

哪个a,b和c是函数?我已经包含了一些示例代码来说明,谢谢.

void Main()
{
    Func<int, string>       a = i => i.ToString();
    Func<string, DateTime>  b = s => new DateTime(2000,1,1).AddDays(s.Length);
    Func<DateTime, bool>    c = d => d.DayOfWeek == DayOfWeek.Wednesday;

    //var myPipeline = CreatePipeline(a, b, c);

    Func<int, bool> similarTo =  i => c(b(a(i))) ;

    Func<int, bool> isThisTheBestWeCanDo = a.Chain(b).Chain(c);

}

public static class Ext{

    //public static Func<X, Z> CreatePipeline<X,Z>(params MagicFunc<X..Y>[] fns) {
    //  return 
    //}

    public static Func<X, Z> Chain<X,Y,Z>(this Func<X,Y> …
Run Code Online (Sandbox Code Playgroud)

c# pipeline chaining

8
推荐指数
1
解决办法
104
查看次数

标签 统计

c# ×1

chaining ×1

pipeline ×1