日期:2014-05-17  浏览次数:20761 次

关于接口,委托,事件...求指点!
1.)第一个问题

我觉得委托和接口的应用惊人的相似,除了委托能把多个方法(也可以说是多个现实吧)添加到委托的变量当中,然后对变量进行调用,就能依次执行添加的方法。。而接口没这东西。。感觉除了这一点,没有别的不同了。。

这两个东西的思想实在太像了,都是为了实现多态,感觉委托能做的,接口都能做(除了上面说的那点)。。那我们到底什么时候才用委托呢?两者到底有什么不同呢?希望能就理论,和实际的应用举个例子,谢谢!!


2.)第二个问题

关于event关键字,事件..


namespace Delegate {
       //定义委托,它定义了可以代表的方法的类型
       public delegate void GreetingDelegate(string name);
      
       //新建的GreetingManager类
       public class GreetingManager
       {
           //这里加了个event
           public event GreetingDelegate MakeGreet;

           public void GreetPeople(string name, GreetingDelegate MakeGreeting)
           {
               MakeGreeting(name);
           }
       }
       class Program
       {
           private static void EnglishGreeting(string name)
           {
               Console.WriteLine("Morning, " + name);
           }

           private static void ChineseGreeting(string name)
           {
               Console.WriteLine("早上好, " + name);
           }

           static void Main(string[] args)
           {
               GreetingManager gm = new GreetingManager(); 
               //声明了event后,就不能直接gm.MakeGreet=XXX来赋值了..
               gm.MakeGreet += ChineseGreeting;