我今天反编译别人的组件,发现了有好些委托代理的声明(定义)没有放在类中,而是直接挂在命名空间下,同类是一个层次的。
查找之后发现,定义的委托在好些类中都有用到。 请问,此种DELEGATE是如何定义的? 不写在具体的某个类中,那应该写在哪? 谢谢!!!

解决方案 »

  1.   

    类定义在哪里,DELEGATE就定义在哪里.换句话讲,将DELEGATE当作一个特殊的类就是了.
      

  2.   

    public delegate void TestEventHandler(object sender);
     public event TestEventHandler  testEvent;
    obj.testEvent+= new testobj.TestEventHandler(obj);使用的是 delegate  生成的TestEventHandler的对象来绑定事件
      

  3.   

    delegate 跟 class,struct 平级的,依据这个 delegate 的使用范围,如果是某个 class 事件用的,就写在 class 外面,但跟 class 同一文件里,如果是 class 内部的比如线程委托,就写在 class 内部,当然也可以新开文件单独写这些。
      

  4.   


    楼上正解,补充一下,delegate 写在哪里与你实际调用该线程时的次序有关,按照其与class平级的原则进行调用