欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

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

时间:2020-12-10 08:14:25|栏目:.NET代码|点击:

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

  }

}

 

上一篇:实例解析Java中的synchronized关键字与线程安全问题

栏    目:.NET代码

下一篇:几个ASP.NET技巧

本文标题:c#在程序中定义和使用自定义事件方法总结

本文地址:http://www.codeinn.net/misctech/31209.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有