
正文
c#与Java事件定义的不同
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C#:
using System;
using System.Collections.Generic;
using System.Text; namespace Test1
{
class Program
{
/// <summary>
/// 主函数
/// </summary>
/// <param name="args">参数</param>
static void Main(string[] args)
{
EventSourceObject obj = new EventSourceObject();
obj.Name = "Child";
obj.Wakeup += new WakeupEventDelegate(obj_Wakeup);
obj.DoWakeup();
System.Console.Read();
} static void obj_Wakeup(object sender)
{
System.Console.WriteLine(((EventSourceObject)sender).Name + " wakeup.");
}
} /// <summary>
/// 唤醒事件委托
/// </summary>
/// <param name="sender">发送源</param>
public delegate void WakeupEventDelegate(object sender); /// <summary>
/// 事件源对象
/// </summary>
public class EventSourceObject
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; } /// <summary>
/// 唤醒事件
/// </summary>
public event WakeupEventDelegate Wakeup; /// <summary>
/// 唤醒(触发事件)
/// </summary>
public void DoWakeup()
{
System.Console.WriteLine("Parent wakeup.");
if (Wakeup != null)
{
Wakeup(this);
}
}
}
}
Java:
import java.util.EventListener;
import java.util.EventObject; public class Main {
/*
* 主函数
*/
public static void main(String[] args){
EventSourceObject obj = new EventSourceObject();
obj.setName("Child");
// 注册事件
obj.setWakeupListener(new WakeupEventListener(){
@Override
public void fireEvent(WakeupEvent e){
super.fireEvent(e);
System.out.println(((EventSourceObject)e.getSource()).getName() + " wakeup.");
}
});
// 触发事件
obj.wakeup();
}
}
/*
* 定义唤醒事件
*/
class WakeupEvent extends EventObject{
private static final long serialVersionUID = 1L;
public WakeupEvent(Object source){
super(source);
}
}
/*
* 定义唤醒事件监听
*/
class WakeupEventListener implements EventListener{
public void fireEvent(WakeupEvent e){
System.out.println("Parent wakeup.");
}
}
/*
* 定义事件源对象
*/
class EventSourceObject{
private String name;
private WakeupEventListener listener;
/*
* 获取名称
*/
public String getName(){
return this.name;
}
/*
* 设置名称
*/
public void setName(String name){
this.name = name;
}
/*
* 设置唤醒事件监听
*/
public void setWakeupListener(WakeupEventListener listener){
this.listener = listener;
}
/*
* 唤醒(触发事件)
*/
public void wakeup(){
this.listener.fireEvent(new WakeupEvent(this));
}
}







