自学了不少语言,发现他们既有相互对应之处,又有很大不同,今天就事件,拿出来整理了一下。
VB6
定义:只能在用户控件中定义
Public Event 事件名(参数列表)
触发:
RaiseEvent 事件名(参数列表)
绑定:构造过程名
对象名_事件名(参数列表)
VB.NET
定义:
Public Event 事件名(参数列表)
触发:
RaiseEvent 事件名(参数列表)
绑定:两种方法
Private Sub 处理事件的过程名(参数列表) Handles 对象名.事件名
或
AddHandler 对象名.事件名, AddressOf 处理事件的过程名
C#
定义:通过委托
public delegate void 委托名(参数列表);
public event 委托名 事件名=null;
触发:
if(事件名!=null) 事件名(参数列表);
绑定:
对象名.事件名+=new 委托名(方法名);
Java
//定义:
interface 事件监听器{
public void actionPerformed();
}
class MyEventHandler{
private 事件监听器 mylistener;
//绑定:
public void addEventListener(事件监听器 listener){
mylistener=listener;
}
//触发:
public void raiseEvent(){
mylistener.actionPerformed();
}
}
class MyClass{
private MyEventHandler h;
public MyClass(){
h=new MyEventHandler();
//绑定:
h.addEventListener(new 事件监听器(){
public void actionPerformed(){...}
});
}
//触发:
public void do(){
h.raiseEvent();
}
}