public delegate void hihi()=========这里 C# 中 委托的定义方式

解决方案 »

  1.   

    hihi()不是函数,这个委托名为 hihi,void hihi() 表示,此委托指向的方法类型的原型是:空参数,且无返回值
      

  2.   

    委托表示一个函数的签名,是指一个函数定义的形式。比如你说的public delegate void hihi(),那么也就是说要使用委托的函数必须满足无参数,无返回值的条件。
    public delegate void hihi();
    hihi hi = null;
    hi += new hihi( MethodOne );
    hi += new hihi( MethodTwo );
    那么就可以用hi()来执行这两个函数啦。
      

  3.   

    还是看看基本的delegate 的概念吧!!!
    然后就是它和Event的结合使用!
      

  4.   

    签名就是只有函数头,没有函数体(函数的实现语句)。
    委托函数定义好后,就可以像
    hi += new hihi( MethodOne );
    hi += new hihi( MethodTwo );这样把要执行的语句交给你自己定义的函数。
      

  5.   

    但是,我理解不了委托居然还包含了函数,就像public delegate void hihi()
    怎么突然冒了个hihi()函数出来了?
    -------------------
    这里的hihi只是个占位符号...是为了宣告它的签名(无返回和无参数)...
    你们提得最多的一个词是"签名".什么是"签名"?
    -------------------
    Signature - 签名方法、字段、属性或局部变量的定义中涉及的类型列表。对于方法,签名包括其名称、参数的数量及其类型,它返回的类型(如果有的话),以及其调用约定(默认或 vararg)。属性的签名与方法的签名类似。字段和局部变量的签名只是它们的类型(例如,整数数组 [0..5])。
    我知道的只有"对象是实例化了的类","方法"相当于C中的"函数".
    -------------------
    你应该这样理解“类是抽象的对象”...先有对象才有类...
    至于“方法”和“函数”...以前程序员按计算机思维考虑问题所以叫Function...而现在我们按人的思维考虑问题所以叫Method...方法和函数其实都只是“包含一系列语句的代码块”...
    是不是我缺失了一些概念,导致理解不了委托?
    -------------------
    你的问题是对OO还没有清楚的概念...去找本OOP的书看看...
      

  6.   

    委托像定义一个函数指针,然后通过下面的代码指向你要执行的函数。
    hi += new hihi( MethodOne );
    hi += new hihi( MethodTwo );如控件提供的事件,就是委托,让你有机会在事件发生时执行自已的代码。
                this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);