委托(delegate)
什么是委托
如果我们要把方法当做参数来传递的话,就要用到委托。
委托是引用类型,表示一组具有相同返回值类型,参数列表的方法引用;
委托的定义格式:
public delegate 返回值类型 委托名(参数列表); public delegate void ActionDelegate();
public delegate void ActionDelegate1(int i);
//方法:
void move(){}
void Attack(int i){}
//定义委托变量接收方法:
ActionDelegate act=move;
ActionDelegate1 act1=Attack;
//调用委托变量执行方法:
act();
act1(12);
//通过+=,-=添加多个方法移除方法;
act+=move;
act-=move;
事件(event)
特殊委托变量,对委托变量进行封装;
不可以在外部进行=赋值,以及调用事件执行;
定义格式:
event 委托类型 变量名;
在定义外部只能通过+=,-=添加方法和移除方法;
事件与委托的区别是:事件只能被声明为类的成员变量,事件不能在类的外部被触发