c#中委派和直接函数调用用什么区别,好处和目的在哪?

以一个例子说明:
//定义原形
public delegate void MessageEventHandler(object sender, EventArgs e);
public event MessageEventHandler MessageReceived;

//注册事件
MessageReceived += new MessageEventHandler(HandleIt);

//使用时
MessageReceived(this,aaa) //aaa是一个EventArgs对象

//定义的处理方法
private void HandleIt(object sender, EventArgs e)
{
.....
}

我想问,这样绕了一圈,本质上不还是在使用时调用一下HandleIt方法么?那么委派的优点究竟在哪里呢?到底有什么好处呢?和直接用函数调用区别在哪里呢?
请高人解答。
请给我个直接明了的回答,如果能再结合个例子说明也好,谢谢。

我认为你的理解是对的。
委托就是一个函数,但是呢,他可以传递啊,你可以将这个函数当作参数传递给另一个函数,在另一个函数中调用。
比如 我有一个A函数 一个B函数 一个C函数 一个Main函数
A B函数原型一样的。
在Main函数中判断一个条件,如果为真,那么将A函数“变成”委托传入C函数,在C函数种调用传入参数的委托就可以了。反之,略。
可见,在C函数中可以不加思索的调用函数,不用判断情况了。

委托还可以“+=”这样可以调用一串函数。

先说这么多吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-28
委托的用途和c++的函数指针相似,但还有提高.
可以把函数做参数传递
在你有好几个函数,而又事先不知道改运行那个好时,就是典型的应用例子.
比如你要实现两操作数的加减乘除
那就可以定义 一个委托 四个函数
具体用什么操作需要用户决定,
这时就可以再定义一个以委托作为参数的函数
实现什么运算就把相应的函数传进去就行了
第2个回答  2008-07-28
委托可以简单的理解成:方法的指针!也就是指向的方法()
可以将多个方法加到一起放到委托中去,这也就是委托链;
当执行委托时,已经+到委托中的方法都以执行!主要应用是事件与方法的绑定中起桥接作用!!~~
相似回答