c# - 如何声明带有 out 参数的通用委托(delegate)

标签 c# .net generics func out

<分区>

Func<a, out b, bool> ,只是不编译,如何声明我希望第二个参数是 out一个?

我想这样使用它:

 public class Foo()
 {
     public Func<a, out b, bool> DetectMethod;
 }

最佳答案

实际上,Func 只是在 .NET Framework 中声明的一个简单委托(delegate)。实际上,那里声明了几个 Func 代表:

delegate TResult Func<TResult>()
delegate TResult Func<T, TResult>(T obj)
delegate TResult Func<T1, T2, TResult>(T1 obj1, T2 obj2)
delegate TResult Func<T1, T2, T3, TResult>(T1 obj1, T2 obj2, T3 obj3)
delegate TResult Func<T1, T2, T3, T4, TResult>(T1 obj1, T2 obj2, T3 obj3, T4 obj4)
delegate TResult Func<T1, T2, ... , T16, TResult>(T1 obj1, T2 obj2, ..., T16 obj16)

所以你唯一能做的就是声明你的自定义委托(delegate):

delegate bool MyFunc<T1, T2>(T1 a, out T2 b)

关于c# - 如何声明带有 out 参数的通用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2448010/

相关文章:

c# - 获取字符串的 SHA-256 字符串

c# - 在转发器链接按钮中将对象作为 CommandArguement 传递

c# - 自定义控件 Entity Framework 绑定(bind)

c# - DataContractSerializer 中缺失数据成员的默认值

.net - DataGridView 何时从自定义 EditingControl 获取其值?

java - 将通用 java 类型保存/加载到 postgresql 数据库列

c# - 将列表传递给 RootElement c# 中的部分

java - 为什么 PropertyDescriptor 和 Reflection 在 1.7 中与在 1.6 中对于泛型的工作效果不同?

java - 不兼容的类型 : T#1 cannot be converted to T#2

c# - 如何传递mysql查询和连接字符串并获取结果?