怎么实现带out参数的Func <T>?

  • 回答 (2)
  • 关注 (0)
  • 查看 (7)

我可以通过一个带有out参数的方法作为Func吗?

public IList<Foo> FindForBar(string bar, out int count) { }

// somewhere else
public IList<T> Find(Func<string, int, List<T>> listFunction) { }

Func需要一个类型,所以不会在那里编译,并且调用listFunction需要一个int类型,并且不允许输出。

有没有办法做到?

少女女先疯队长少女女先疯队长提问于
美空鸡多西电回答于

ref和out不是类型参数定义的一部分,所以不能使用内置的Func委托来传递refout参数。当然,如果想要,可以声明:

delegate V MyDelegate<T,U,V>(T input, out U output);
猪猪3516347回答于

为什么不创建一个类来封装结果?

public class Result
{
     public IList<Foo> List { get; set; }
     public Int32 Count { get; set; }
}

扫码关注云+社区