zoukankan      html  css  js  c++  java
  • C#自定义事件

    简单的自定义事件

    首先定义一个类来监听客户端事件,这里我们监听键盘的输入。

    定义一个委托。

    public delegate void UserRequest(object sender,EventArgs e);

    前面的object用来传递事件的发生者,后面的EventArgs用来传递事件的细节,现在暂时没什么用处,一会后面的例子中将使用。

    下面定义一个此委托类型类型的事件

    public event UserRequest OnUserRequest;

    下面我们来做一个死循环

    public void Run() 

        bool finished=false; 
        do 
           { 
              if (Console.ReadLine()=="h") 
                { 
                   OnUserRequest(this,new EventArgs()); 
                }
           }while(!finished); 
    }

    此代码不断的要求用户输入字符,如果输入的结果是h,则触发OnUserRequest事件,事件的触发者是本身(this),事件细节无(没有传递任何参数的EventArgs实例)。我们给这个类取名为UserInputMonitor。

    下面我们要做的是定义客户端的类 
    首先得实例化UserInputMonitor类 
    UserInputMonitor monitor=new UserInputMonitor();

    然后我们定义一个方法。

    private void ShowMessage(object sender,EventArgs e) 

    Console.WriteLine("HaHa!!"); 
    }

    最后要做的是把这个方法和事件联系起来(订阅事件),我们把它写到库户端类的构造函数里。

    Client(UserInputMonitor m) 

    m.OnUserRequest+=new UserInputMonitor.UserRequest(this.ShowMessage); 
    //m.OnUserRequest+=new m.UserRequest(this.ShowMessage);

    //注意这种写法是错误的,因为委托是静态的

    }

  • 相关阅读:
    C#3.0分部份方法
    欢迎提议
    控制台关闭的特殊处理
    好头晕
    c#如何计算当月季度时间段
    CMMI定义(转)
    SQL Server 聚集索引和非聚集索引的区别
    ObjectBuilder2.0 的学习
    WaitHandle、AutoResetEvent、ManualResetEvent整理
    使用XML RPC进行远程调用
  • 原文地址:https://www.cnblogs.com/hanmos/p/1946976.html
Copyright © 2011-2022 走看看