想找个人教我C#的委托

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:22:45
RT...

我总是转不过来那根筋

想找个人指导下,最好是能给我个比较明显的应用委托的事例让我做做.

谢谢了

教了先拿20分,会了再给100分!
很急的.忘了说我QQ 381363902

我教你

委托是.Net中对函数的一种引用,可以通过委托来调用函数的,类似于C中的函数指针,但也仅仅是看上去像,实际上委托还是一个类,像个函数的代理,可以同步或异步调用函数。

委托可以调用类的实例或静态函数。

delegate void FunDelegate(int i);

FunDelegate fd = new FunDelegate(fun1);

//以下都是委托对函数fun1的同步回调
fd(123);
fd.Invoke(123);

//委托对函数的异步回调,用的是线程池线程
fd.BeginInvoke(123,null,null);

委托在各种设计模式很常见,比如策略模式,把函数的参数定义为委托,根据客户端传入的不同函数,实现不同的功能。

另外,.Net中的事件也是一种特殊的委托——多播委托,可以一个委托上挂多个函数的。

所以事件是.Net中委托的最典型应用——即对象之间的通知机制,对象A发生了某个事件,可以通过委托来通知所有订阅此事件的其他对象,把消息发送给其他对象。