一、委托可以帮助我们做什么?
你可能已经学了非常基础的C#语法,如类型、作用域、逻辑控制语句、类的相关知识等等,在一路上的学习过程中,好像没有什么问题是前面学的语法不能解决的,事实也确实如此,就比如简单的C语言语法理论上可以解决所有的编程问题。那这样为什么还有面向对象语言出现?当构建几千行,甚至几万,几十万行代码的项目时,面向对象语言优秀的封装特性能使得非常大的工程问题划分成一个个更小的问题,并且使代码重用性、可读性、可维护性巨幅提高。简单来说,这一切的出现,都是为了让你写代码更爽,更方便。而委托的出现也是如此。委托更像是一位能让你与方法更好打交道的帮手。
我们的类型可以这样,给类型取个名字st,
Student st = new Student( ){
string name = “小红”;
string sex = “女”;
string age = “18”;
};
于是我们就可以拿着st这个名字代表了小红,拿着st“到处”在程序里面使用。我们还可以:
Student st_1 = st;
于是st_1也代表了小红,也可以拿着st_1这个名字”到处“在程序里面使用。这样我们有两个名字代表小红这个实体了,st和st_1。
那方法有没有办法变得和类型一样,拿几个字母代表一个方法,然后拿着这串字符像传递参数一样,把方法在程序里传来传去?当然可以,这就是委托要干的事情。
二、委托的使用
第一步:委托是一个类型,既然它是一个类型那我们使用前就应该定义它:
delegate void Mydel(string name,int typeCode);
ps:定义委托的语句可以写在命名空间下面,或者类里面,不可以写在方法里面。写的地方和定义自己的class一样。
首先委托的签名要和它承载的方法的签名相对应,签名就是返回值类型,参数列表数量、类型的统称。像上面这个委托,它只能承载void xxx(string xxx,int x