解决方案 »

  1.   

    我们知道,委托是可以绑定多个方法的。
    当你未用event进行封装时,使用这个委托,绑定第一个方法必须用 = 符号,而后面再绑定,必须使用+= 符号。
    event对委托类型变量进行封装,使得在类里面,不管你申明它为public还是protected,他永远都会被编译为private。 同时生成一个对应的事件包括两个方法add_XXX(+=)和remove_XXX(-=)。 这个事件访问权限对应你这个委托变量的实际设置的权限。
    这时绑定多个方法,不管是第一个还是第二个第三个...,都必须使用 += 我只知道event这用处了,如果还有其他的期待高手解答
      

  2.   


    1、不用event,绑定多个方法经测试都可以使用+=,没有问题2、如果private event DelegateButtonClicked Button_Clicked;
          则Button_Clicked不可访问
      

  3.   

    充分理解windows平台下的事件驱动机制
      

  4.   

    1.看了下你代码,没看懂你为什么要这样用委托
    都是这样用的:
    frm.Button_Clicked += frm_Button_Clicked;
    你把event去掉直接用 += 某方法()试试?2.我已经说了,不管你申明它为public还是protected,他永远都会被编译为private,这是说的委托类型的变量本身。 同时生成一个对应的事件。 这个事件访问权限对应你这个委托变量的实际设置的权限。那就得了啊,你设为private他当然不能访问了。
      

  5.   

    事件提供安全性和封装性,和属性类似。考虑以下代码片段
    public class A
    {
        public int X { get; set; }
    }
    把{ get; set; }去掉换成分号,在大部分代码里都能正常工作,那么我们为什么需要属性呢?