委托、事件这个机制,早就学过了,怎么用却是一知半解,为什么用,什么场合用也是晕的不行不行的。现在手头上的这个项目是从零开始做的,接触到很多之前没有接触的东西,比如委托、事件这一块。花了些时间从基础开始又学习整理了一下,做一下自己的理解,有不正确的地方或者偏离真相的错误,欢迎指证。
1、委托,关键字是delegate,声明时候是跟类等级一样,可以看出它是一种数据类型,主要作用是把方法作为参数进行传递。下面定义一个最基本的委托:
public delegate void Myde();
委托是可以有参数和返回类型的,由于委托就是包装方法作为参数传递,所以参数和返回类型,要跟你想传递的那个方法一致,如下我想传递
public int T1(int num2)
{ return num2 += 100; }
这个方法,那么我的委托定义为
public delegate int Myde2(int num1);
定义好了,怎么调用呢? 首先是将方法进行传递,T1是个方法,传递T1,那么就需要有方法需要调用T1,参数是声明的那个委托,方法定义如下
调用:public int GetNum(Myde2 md) { return md(100); }
int a = GetNum(T1);
这样,当调用GetNum这个方法时,就会执行T1,传进去100,进行计算之后,a的值返回的是200。
这就是委托最基本的用法了。