方法不必与委托签名完全匹配。 有关更多信息,请参见 在委托中使用变体(C# 和 Visual Basic)。
委托是一种定义方法签名的类型。 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。 您可以通过委托实例调用方法。
委托用于将方法作为参数传递给其他方法。 事件处理程序就是通过委托调用的方法。 您可以创建一个自定义方法,当发生特定事件时某个类(例如 Windows 控件)就可以调用您的方法。
这是一个常见的方法, 输出一段字符串Hello, Delegate!
有了匿名委托我们就可以偷一下懒了,可以把上面的例子改成如下:
在.net 3.0中除了Action<T> 无返回的委托, Predicate<T>有返回值,且返回true或false的委托.
以上会输出Hello,Delegate!因为将Delegate传入到最后输出.
再来讲解一下Predicate这个只返回true or false的委托,如下:
以上代码会输入true因为i不是为null or empty.
在.net 3.5中又新加了Action(无返回值的委托,类似于delegate void)和Func<T,T> 带返回参数的,参数类型是T,返回类型也可以是int,string等..
再来看看Func<T,TReslut> 第一个T代表参数的类型,第一个TReslut代表返回结果的类型。
Charlie ,Wang
Chen, Tom
This is Kevin Liu
委托在很多时候使用可以精简我们的代码,看起来比较直观,下面是个很经典的案例:
联系客服