委托/delegate
本质是一个class,在class内外申明都可以
函数作为参数传递
用于实现事件和回调方法(线程,lambda)
派生自System.Delegate
类
申明委托delegate
实例化委托 参数是函数
事件Event
本质就是委托
区别在于用event修饰后,不能在对象外面使用赋值,只能注册或者移除注册
常用的事件
EventHandler
:.Net Framework中定义的事件
EventHandler(object sender,EventArgs args)
Func & Action
.Net内置泛型委托
区别 在于返回值
-
Func<Result>
有返回类型 -
Action<T>
只有参数类型,不能传返回类型。所以Action<T>
的委托函数都是没有返回值的