首页 > 编程 > C# > 正文

c#在程序中定义和使用自定义事件方法总结

2020-01-24 00:07:15
字体:
来源:转载
供稿:网友

C#在程序中定义和使用自定义事件可以分为以下几个步骤:

步骤1:在类中定义事件

using System;public class TestClass{  //....  public event EventHandler TestEvent}

步骤2:定义事件参数

注意:事件参数类TestEventArgs继承自System.EventArgs

using System;public class TestEventArgs : EventArgs{  public TestEventArgs() : base() { }   public string Message { get; set; }}

步骤3:在TestClass 引发事件

public class TestClass{  // 这个方法引发事件  public void RaiseTestEvent(string message)  {    if (TestEvent == null) return;    TestEvent(this, new TestEventArgs { Message = message });  }  public event EventHandler TestEvent; }

步骤4:使用事件

class Program{  static void Main(string[] args)  {     TestClass tc = new TestClass();    // 挂接事件处理方法    tc.TestEvent += Tc_TestEvent;         Console.WriteLine("按任意键引发事件");    Console.ReadKey();        // 引发事件    tc.RaiseTestEvent("通过事件参数传递的字符串");         Console.WriteLine("按任意键退出");    Console.ReadKey();  }  private static void Tc_TestEvent(object sender, EventArgs e)  {    // 将事件参数强制转换为TestEventArgs    TestEventArgs te = (TestEventArgs)e;    // 显示事件参数中的Message    Console.WriteLine(te.Message);  }}

完整的程序如下

using System;public class TestClass{  public void RaiseTestEvent(string message)  {    if (TestEvent == null) return;    TestEvent(this, new TestEventArgs { Message = message });  }   public event EventHandler TestEvent; }public class TestEventArgs : EventArgs{  public TestEventArgs() : base() { }   public string Message { get; set; }}class Program{  static void Main(string[] args)  {     TestClass tc = new TestClass();    tc.TestEvent += Tc_TestEvent;    Console.WriteLine("按任意键引发事件");    Console.ReadKey();    tc.RaiseTestEvent("通过事件参数传递的字符串");    Console.WriteLine("按任意键退出");    Console.ReadKey();  }  private static void Tc_TestEvent(object sender, EventArgs e)  {    TestEventArgs te = (TestEventArgs)e;    Console.WriteLine(te.Message);  }}

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表