委托和事件没有可比性:

    1,因为委托是类型,事件是对象;

    2,因为对于事件来讲,外部只能“注册自己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。

    3,事件只能add、remove自己,不能赋值。事件只能+=、-=,不能=、不能外部触发事件。我写篇笔记你看看就明白了。

    4,委托第一次用的“=”,是赋值的语法;第二次,用的是“+=”,是绑定的语法。如果第一次就使用“+=”,将出现“使用了未赋值的局部变量”的编译错误。

    因为委托是类型,要用必须先实例化或赋值。

    1. static void Main(string[] args)
    2. {
    3. GreetingDelegate delegate1;
    4. delegate1 = EnglishGreeting;
    5. delegate1 += ChineseGreeting;
    6. delegate1("Liker");
    7. Console.ReadLine();