c# 委托与事件

来源:互联网 发布:windows哪个系统最好 编辑:程序博客网 时间:2024/06/05 11:50

推荐阅读:

http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx

http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-Advanced.aspx


简单来说:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句

举例:有A(string name) B(string name)  C (string name) 三个方法

现在调用哪个方法不确定。那么需要将方法作为参数传递,这个涉及到映射,是一个难点,具体可以参考我的映射教程。此处假设已经完成了方法与参数的映射。


如果不用委托

则程序需要判断

if(A)

else if(B)

else(C)


采用委托则会简单很多

参第一个链接

//注意此方法,它接受一个GreetingDelegate类型的方法作为参数
           private static void GreetPeople(string name, GreetingDelegate MakeGreeting) {
               MakeGreeting(name);
            }

此处就能将方法作为MakeGreeting参数传递,然后调用MakeGreeting(name);即调用对应的方法。



事件:对委托进行了封装


区别委托事件是否可以使用=来赋值是否是否可以在类外部进行调用是否是否是一个类型是否,事件修饰的是一个对象


0 0