• c#与Java事件定义的不同


    C#:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Text;
     4 
     5 namespace Test1
     6 {
     7     class Program
     8     {
     9         /// <summary>
    10         /// 主函数
    11         /// </summary>
    12         /// <param name="args">参数</param>
    13         static void Main(string[] args)
    14         {
    15             EventSourceObject obj = new EventSourceObject();
    16             obj.Name = "Child";
    17             obj.Wakeup += new WakeupEventDelegate(obj_Wakeup);
    18             obj.DoWakeup();
    19             System.Console.Read();
    20         }
    21 
    22         static void obj_Wakeup(object sender)
    23         {
    24             System.Console.WriteLine(((EventSourceObject)sender).Name + " wakeup.");
    25         }
    26     }
    27 
    28     /// <summary>
    29     /// 唤醒事件委托
    30     /// </summary>
    31     /// <param name="sender">发送源</param>
    32     public delegate void WakeupEventDelegate(object sender);
    33 
    34     /// <summary>
    35     /// 事件源对象
    36     /// </summary>
    37     public class EventSourceObject
    38     {
    39         /// <summary>
    40         /// 名称
    41         /// </summary>
    42         public string Name { get; set; }
    43 
    44         /// <summary>
    45         /// 唤醒事件
    46         /// </summary>
    47         public event WakeupEventDelegate Wakeup;
    48 
    49         /// <summary>
    50         /// 唤醒(触发事件)
    51         /// </summary>
    52         public void DoWakeup()
    53         {
    54             System.Console.WriteLine("Parent wakeup.");
    55             if (Wakeup != null)
    56             {
    57                 Wakeup(this);
    58             }
    59         }
    60     }
    61 }

    Java:

     1 import java.util.EventListener;
     2 import java.util.EventObject;
     3 
     4 public class Main {
     5     /*
     6      * 主函数
     7      */
     8     public static void main(String[] args){
     9         EventSourceObject obj = new EventSourceObject();
    10         obj.setName("Child");
    11         // 注册事件
    12         obj.setWakeupListener(new WakeupEventListener(){
    13             @Override
    14             public void fireEvent(WakeupEvent e){
    15                 super.fireEvent(e);
    16                 System.out.println(((EventSourceObject)e.getSource()).getName() + " wakeup.");
    17             }
    18         });
    19         // 触发事件
    20         obj.wakeup();
    21     }
    22 }
    23 /*
    24  * 定义唤醒事件
    25  */
    26 class WakeupEvent extends EventObject{
    27     private static final long serialVersionUID = 1L;
    28     public WakeupEvent(Object source){
    29         super(source);
    30     }
    31 }
    32 /*
    33  * 定义唤醒事件监听
    34  */
    35 class WakeupEventListener implements EventListener{    
    36     public void fireEvent(WakeupEvent e){
    37         System.out.println("Parent wakeup.");
    38     }
    39 }
    40 /*
    41  * 定义事件源对象
    42  */
    43 class EventSourceObject{
    44     private String name;
    45     private WakeupEventListener listener;
    46     /*
    47      * 获取名称
    48      */
    49     public String getName(){
    50         return this.name;
    51     }
    52     /*
    53      * 设置名称
    54      */
    55     public void setName(String name){
    56         this.name = name;
    57     }
    58     /*
    59      * 设置唤醒事件监听
    60      */
    61     public void setWakeupListener(WakeupEventListener listener){
    62         this.listener = listener;
    63     }
    64     /*
    65      * 唤醒(触发事件)
    66      */
    67     public void wakeup(){
    68         this.listener.fireEvent(new WakeupEvent(this));
    69     }
    70 }
  • 相关阅读:
    codeforces 169 div2 C
    poj 1062(最短路)
    sgu 118
    sgu 101
    poj 2446二分图匹配
    ural 1129 (求数据)
    C#中抽象类和接口的区别(转)
    在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
    一道爱出的题目,就是前面两个数相加 用递归方法实现
    C#冒泡排序
  • 原文地址:https://www.cnblogs.com/lgyup/p/4729032.html
Copyright © 2020-2023  润新知