栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

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

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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);

  }

}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/122572.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号