本文介绍了如何声明一个泛型委托具有out参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Func键<一,出B,布尔>
,只是不编译,如何声明,我想第二个参数是出
吗?
我想用这样的:
公共类Foo()
{
公共Func键<一,出B,布尔> DetectMethod;
}
解决方案
其实func是在.NET Framework宣布只是一个简单的委托。其实有几个函数功能的代表宣布有:
委托TResult Func键< TResult>()
委托TResult Func键< T,TResult>(T obj)以
委托TResult Func键&所述; T1,T2,TResult>(T1 OBJ1,T2 obj2的)
委托TResult Func键&所述的T1,T2,T3,TResult>(T1 OBJ1,T2 obj2的,T3 obj3)
委托TResult Func键&所述; T1,T2,T3,T4,TResult>(T1 OBJ1,T2 obj2的,T3 obj3,T4 OBJ4)
所以,你唯一可以做的事情就是声明你自定义委托:
委托布尔MYFUNC< T1,T2>(T1一,出T2 B)
Func<a, out b, bool>
, just don't compile, how to declare that i want the second parameter be an out
one?
I want to use it like this:
public class Foo()
{
public Func<a, out b, bool> DetectMethod;
}
解决方案
Actually Func is just a simple delegate declared in the .NET Framework. Actually there are several Func delegates declared there:
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)
So the only thing you can do is declare your custom delegate:
delegate bool MyFunc<T1, T2>(T1 a, out T2 b)
这篇关于如何声明一个泛型委托具有out参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!