我可以将带有 out 参数的方法作为 Func 传递吗?
public IList<Foo> FindForBar(string bar, out int count) { } // somewhere else public IList<T> Find(Func<string, int, List<T>> listFunction) { }
Func 需要一个类型,所以 out 不会在那里编译,调用 listFunction 需要一个 int 并且不允许 out in。
有没有办法做到这一点?
ref并且out不是类型参数定义的一部分,因此您不能使用内置Func委托来传递ref和out参数。当然,您可以根据需要声明自己的委托:
ref
out
Func
delegate V MyDelegate<T,U,V>(T input, out U output);