【C#学习】--委托

发布时间 2023-04-07 10:41:33作者: 90Red

.1  委托

.1.1 概述

委托(代理)关键字delegate,是一种程序特性,它是用来代表方法、表示方法的,用编程里的另一个说法:委托是方法的指针。

我们首先看看通常的声明语法:

int age = 10; //这里整型变量age代表的是10这个整型值

Course myCourse = new Course();//这里将Course类实例化出一个myCourse对象,myCourse是一个特定对象的代表

而委托的声明语法在格式上与上面没有什么差别:

delegate 委托变量名 = 具体方法;//但只是格式上没啥差别,本质上委托和上面的两种声明有很大的区别(见下面)

.1.2 诞生意义及应用场景

结合实际联想:一件事情我们自己处理不了,可以委托别人来帮助处理

我  (委托)别人  做某事

delegate 委托变量名 = 具体方法;//是不是对应上了?

前面的age、myCourse代表的都是某种“静态数据”,而委托代表的是一种“动态数据(行为数据)”,而这个行为就是方法(最开始学习编程的时候我们就知道,方法代表我们需要系统运行的动作)

在软件开发中,我们也会面临类似情况,一个方法因为已经在一个特定对象中被调用,此时我们想用另一种对象去调用这个方法时往往无法直接调用,这时候就可以使用委托解决。

情境举例:

如何达成我们上面用B在A中实例化的对象b在A中成功调用A的方法呢(这里与方法是否公有无关)?

使用委托。

.1.3 委托的使用

首先声明委托(方法的原型)