[c#] 带out参数的Func <T>



Answers

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

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

我可以通过一个带有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类型,并且不允许输出。

有没有办法做到这一点?




你可以将它包装在一个暴露正确接口并调用FindForBar的lambda / delegate / function /方法中,但我怀疑FindForBar已经算作out参数,所以你需要确保将这些信息丢弃好的/安全的/理想的/有正确的结果(即使你可以直接通过FindForBar,你也需要确定这一点)。




Links