首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个事件委托的有关问题

2012-10-29 
一个事件委托的问题我在Form1里面声明了一个委托public delegate voidEventHandler2(object sender, Event

一个事件委托的问题
我在Form1里面声明了一个委托
public delegate void EventHandler2(object sender, EventArgs e);

为什么在类外只能通过类名调用
 Form1.EventHandler2 messarr = new Form1.EventHandler2(frm_Click);

而不能通过对象来调用?

[解决办法]
委托相当于一个类(编译器玩了魔术),所以在类中定义委托,就相当于内嵌类一样。

Form1.EventHandler2 这个和调用没有关系,只是说明了这么一个类型。

好比
class A
{
public class B { public void foo() { ... } }
}
那么你要调用B的foo方法,你得这么写:
A.B b = new A.B(); //A.B这里不是调用,只是说明有这么个类型。
b.foo(); //这才是调用

热点排行