public event EventHandler Click这句话的event的理解,谢谢!c#问题,winform
EventHandlerClick是根据系统中(.net中)定义的委托从而生成的一个委托的对象,即Click。然后如果绑定单击某个按钮的事件处理方法,就相当于:Click...
EventHandler Click是根据系统中(.net中)定义的委托从而生成的一个委托的对象,即Click。
然后如果绑定单击某个按钮的事件处理方法,就相当于:
Click+=new EventHandler(Button_Click1),而且还可以继续绑定,如
Click+=new EventHandler(Button_Click2),
Click+=new EventHandler(Button_Click3),
然后该按钮被单击后,系统就会一次调用Button_Click1,Button_Click2和Button_Click3方法处理事件。
这么理解,还算对吧?求点评,谢谢!
既然委托就可以解决这个方法绑定及事件处理的任务,为什么前面还有一个event呢?
比如int a,int是数据类型a是变量。EventHandler Click,EventHandler 是数据类型,Click是变量。请问event是什么角色?是修饰这个类型的,还是一个数据类型?求对event的详细解释,谢谢! 展开
然后如果绑定单击某个按钮的事件处理方法,就相当于:
Click+=new EventHandler(Button_Click1),而且还可以继续绑定,如
Click+=new EventHandler(Button_Click2),
Click+=new EventHandler(Button_Click3),
然后该按钮被单击后,系统就会一次调用Button_Click1,Button_Click2和Button_Click3方法处理事件。
这么理解,还算对吧?求点评,谢谢!
既然委托就可以解决这个方法绑定及事件处理的任务,为什么前面还有一个event呢?
比如int a,int是数据类型a是变量。EventHandler Click,EventHandler 是数据类型,Click是变量。请问event是什么角色?是修饰这个类型的,还是一个数据类型?求对event的详细解释,谢谢! 展开
4个回答
展开全部
event 是一个事件,在C#中事件是基于委托的,没有委托事件无法定义,event也是数据类型,微软的定义:类或对象可以通过事件向其他类或对象通知发生的相关事情。 发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。
事件具有以下特点:
发行者确定何时引发事件,订户确定执行何种操作来响应该事件。
一个事件可以有多个订户。 一个订户可处理来自多个发行者的多个事件。
没有订户的事件永远也不会引发。
事件通常用于通知用户操作,例如,图形用户界面中的按钮单击或菜单选择操作。
如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。 要异步调用事件,请参见使用异步方式调用同步方法。
在 .NET Framework 类库中,事件是基于 EventHandler 委托和 EventArgs 基类的。
http://msdn.microsoft.com/zh-cn/library/awbftdfh(v=vs.100)
事件具有以下特点:
发行者确定何时引发事件,订户确定执行何种操作来响应该事件。
一个事件可以有多个订户。 一个订户可处理来自多个发行者的多个事件。
没有订户的事件永远也不会引发。
事件通常用于通知用户操作,例如,图形用户界面中的按钮单击或菜单选择操作。
如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。 要异步调用事件,请参见使用异步方式调用同步方法。
在 .NET Framework 类库中,事件是基于 EventHandler 委托和 EventArgs 基类的。
http://msdn.microsoft.com/zh-cn/library/awbftdfh(v=vs.100)
展开全部
事件成员,C#语法使用关键字event来定义。
每个事件成员都要指定以下内容:
1个可访问性标识符(基本都是public,这样其他代码才可以访问该事件成员);
1个委托类型,它指出要调用方法的原型;
1个名称(可以是任意有效的标识符)。
public event EventHandler Click;
其中,可访问性标识符是public,Click是事件的名称,
事件成员的类型是EventHandler,
意味着所有的方法都必须提供1个与EventHandler委托类型匹配的方法,
EventHandler委托类型定义如下:
public delegate void EventHandler(object sender, EventArgs e);
所以方法原型必须具有如下形式:
void MethodName(object sender, EventArgs e);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
event 是 关键字 ,用于创建自定义事件。 在C#中声明事件时必须指定委托,可以使用EventHandle委托,也可以使用具有特定签名的自定义委托。例如:
Public event EventHandle Something;
Public event CustomerEventDelegate SomethingElse;
Public delegate void CustomerEventDelegate(Object sender,EventArgs e);
事件与委托在声明时非常相似,唯一区别就是事件要添加event关键字。事件一般用public关键字修饰,但是无法在外部触发,而委托可以在外部直接调用。
Public event EventHandle Something;
Public event CustomerEventDelegate SomethingElse;
Public delegate void CustomerEventDelegate(Object sender,EventArgs e);
事件与委托在声明时非常相似,唯一区别就是事件要添加event关键字。事件一般用public关键字修饰,但是无法在外部触发,而委托可以在外部直接调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1楼正解,楼主多多学习啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询