new Func<int,out int, int>这样写报错,应该怎么写呢?

解决方案 »

  1.   

    Func不能这么写,不能加out修饰
      

  2.   

    那应该怎么写?我自定义了一个委托,也不行啊?
            public delegate int fun(out int a); int a = 0;
                var FUN = new fun((out tt) => { a = 100; return a; });
      

  3.   

    难道lambda表达式不能传递带out ref的参数吗?
      

  4.   

    Func 是有返回值的泛型委托
    Func<in,out>
    Func<in,in,out> FCL提供最多16个泛型个数最后一个是返回值,你如果需要的是返回值,那给最后一个泛型就可以了
      

  5.   


    public delegate int fun(out int a);var FUN = new fun((out int tt) => { tt = 100; return 200; });
    int a = 0;
    int b = FUN(out a);
    /*
    a = 100, b = 200
    */