c# 委托
时间:2011-03-19 来源:穆穆
这里说一下自己对委托的相关总结……
委托:是一种定义方法签名的类型。(注意是类型!)用于将方法作为参数传递给其它方法。
class Program
{
//定义一个委托,它的返回类型为int,参数列表为两个int类型变量,
//这里理解为,委托能调用的方法的返回类型为int,而且参数列表为两个int类型变量
//所以要调用什么方法,委托的定义就要和它一样!除了加上个关键delegate
public delegate int MyDelegate(int x, int y);
static int MyFunction(int x,int y)
{
return x + y;
}
static void Main(string[] args)
{
MyDelegate myDelegate = new MyDelegate(MyFunction);
//委托也是一种类型,所以要有实例
//注意这里的参数,上面不是定义了两个int类型吗?这里却传方法名
//没错,这里传方法,再想想委托的作用(用于将方法作为参数传递给其它方法)
//所以这里用方法名传进去,委托定义那里用两个int类型只是为了说明能调用
//这种返回类型为int,有两个int类型变量的方法
int tmp = myDelegate(1,2);
//这里就用委托实例传入两个int类型变量啦,相当于MyFunction(1,2)
//这就是委托的作用啦,不用方法名就可以实现方法一样的效果
//可能在这里觉得用委托比较麻烦,直接用方法就好啦,但仔细想想,委托的出现不么这么简单吧
//任何东西存在都有它的道理的!以后学到了事件你就会更明白啦!
Console.WriteLine(tmp);
}
}
注意:本例中你会发现委托不是静态的却调用了静态的方法,是的,委托可以调用静态和非静态方法,你可以自己试试!
关于委托,下次再深入说一下:c# 委托深入!