委托表示一个函数的签名,是指一个函数定义的形式。比如你说的public delegate void hihi(),那么也就是说要使用委托的函数必须满足无参数,无返回值的条件。 public delegate void hihi(); hihi hi = null; hi += new hihi( MethodOne ); hi += new hihi( MethodTwo ); 那么就可以用hi()来执行这两个函数啦。
还是看看基本的delegate 的概念吧!!! 然后就是它和Event的结合使用!
签名就是只有函数头,没有函数体(函数的实现语句)。 委托函数定义好后,就可以像 hi += new hihi( MethodOne ); hi += new hihi( MethodTwo );这样把要执行的语句交给你自己定义的函数。
委托像定义一个函数指针,然后通过下面的代码指向你要执行的函数。 hi += new hihi( MethodOne ); hi += new hihi( MethodTwo );如控件提供的事件,就是委托,让你有机会在事件发生时执行自已的代码。 this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
public delegate void hihi();
hihi hi = null;
hi += new hihi( MethodOne );
hi += new hihi( MethodTwo );
那么就可以用hi()来执行这两个函数啦。
然后就是它和Event的结合使用!
委托函数定义好后,就可以像
hi += new hihi( MethodOne );
hi += new hihi( MethodTwo );这样把要执行的语句交给你自己定义的函数。
怎么突然冒了个hihi()函数出来了?
-------------------
这里的hihi只是个占位符号...是为了宣告它的签名(无返回和无参数)...
你们提得最多的一个词是"签名".什么是"签名"?
-------------------
Signature - 签名方法、字段、属性或局部变量的定义中涉及的类型列表。对于方法,签名包括其名称、参数的数量及其类型,它返回的类型(如果有的话),以及其调用约定(默认或 vararg)。属性的签名与方法的签名类似。字段和局部变量的签名只是它们的类型(例如,整数数组 [0..5])。
我知道的只有"对象是实例化了的类","方法"相当于C中的"函数".
-------------------
你应该这样理解“类是抽象的对象”...先有对象才有类...
至于“方法”和“函数”...以前程序员按计算机思维考虑问题所以叫Function...而现在我们按人的思维考虑问题所以叫Method...方法和函数其实都只是“包含一系列语句的代码块”...
是不是我缺失了一些概念,导致理解不了委托?
-------------------
你的问题是对OO还没有清楚的概念...去找本OOP的书看看...
hi += new hihi( MethodOne );
hi += new hihi( MethodTwo );如控件提供的事件,就是委托,让你有机会在事件发生时执行自已的代码。
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);