日期:2014-05-17  浏览次数:20390 次

委托怎么在传递参数的时候加out呢?
new Func<int,out int, int>这样写报错,应该怎么写呢?

------解决方案--------------------
Func不能这么写,不能加out修饰
------解决方案--------------------
Func 是有返回值的泛型委托
Func<in,out>
Func<in,in,out> FCL提供最多16个泛型个数

最后一个是返回值,你如果需要的是返回值,那给最后一个泛型就可以了
------解决方案--------------------
C# code

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
*/