委托就是一个引用,只不过与我们平时所创建的引用的区别是:前者是用一个函数来表示对另一个函数的引用,而后面的的使用一个string类型的变量来对一个string类型变量的引用。
为了说清这个问题,首先我会举一个string引用类型的例子:
如下代码:
string str=new string("I'm Tony!");
则我们知道其中str就是一个引用,str是一个地址,放在方法区,指向的内容是放在堆中的string对象"I'm Tony!",简单的来说,str是一把钥匙,而"I'm Tony!"是一个保险柜,只有钥匙(str)才能打开(访问)保险柜。
那么理解了上面的内容,接下来要讲解。net中的委托啦。
看下面代码:
delegate delegateDemo(double num1,double num2);
double devide(double num1,double num2)
{
return num1/num2;
}
double multuply(double num1,double num2)
{
return num1*num2;
}
大家留心,devide和multipuly函数都是有相同的参数类型,而上面我想演示的是用函数elegateDemo来实现引用函数devide和multipuly函数其中的一个。
下面是引用:
result=new delegateDemo(devide);//委托devide函数
result=new delegateDemo(multuply);//委托devide函数
谢谢,疏漏之处,望指点!