一尘不染

功能 没有参数

c#

我可以将带有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进入。

有没有办法做到这一点?


阅读 233

收藏
2020-05-19

共1个答案

一尘不染

ref并且out它们不是类型参数定义的一部分,因此您不能使用内置的Func委托来传递refout参数。当然,如果需要,您可以声明自己的委托:

delegate V MyDelegate<T,U,V>(T input, out U output);
2020-05-19