• 贵州省社科规划办与贵州日报社合作推出“文化贵州”专栏 2019-03-20
  • 就算不为了世界杯,俄罗斯也有那么多时髦好去处值得你飞去 2019-03-20
  • ]山西体育彩票11选5:c#在程序中定义和使用自定义事件方法总结

    山西体彩11选5直选遗漏 www.caxru.com  更新时间:2019年03月11日 08:38:35   投稿:laozhang   我要评论

    在本篇文章中小编给大家整理了关于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);
    
      }
    
    }

     

    相关文章

    • DevExpress之ChartControl实现时间轴实例

      DevExpress之ChartControl实现时间轴实例

      这篇文章主要介绍了DevExpress中ChartControl实现时间轴的方法,涉及相关C#绘图程序用法,具有一定的实用价值,需要的朋友可以参考下
      2014-10-10
    • C#串口编程实例代码

      C#串口编程实例代码

      这篇文章主要为大家详细介绍了C#串口编程实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2016-08-08
    • C#多线程之Thread类详解

      C#多线程之Thread类详解

      这篇文章主要为大家详细介绍了C#多线程之Thread类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2017-08-08
    • c#使用正则表达式匹配字符串验证URL示例

      c#使用正则表达式匹配字符串验证URL示例

      这篇文章主要介绍了c#使用正则表达式的小示例,匹配字符串、验证URL,大家参考使用吧
      2013-12-12
    • C#实现验证身份证是否合法的方法

      C#实现验证身份证是否合法的方法

      这篇文章主要介绍了C#实现验证身份证是否合法的方法,实例分析了通过自定义函数实现针对身份证合法性验证的技巧,非常具有实用价值,需要的朋友可以参考下
      2015-03-03
    • C#如何打开并读取usb的文件目录

      C#如何打开并读取usb的文件目录

      这篇文章主要介绍了用C#语言实现打开并读取usb的文件目录,但是实现此功能要注意一点必须在u盘插入才能接受到信息,需要的朋友可以参考下
      2015-07-07
    • C#从命令行读取参数的方法

      C#从命令行读取参数的方法

      这篇文章主要介绍了C#从命令行读取参数的方法,实例分析了C#命令行读取参数的实现技巧与操作流程,需要的朋友可以参考下
      2015-04-04
    • C#字符串自增自减算法详解

      C#字符串自增自减算法详解

      这篇文章主要为大家详细介绍了C#字符串自增自减的算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2017-08-08
    • .NET垃圾回收器(GC)原理浅析

      .NET垃圾回收器(GC)原理浅析

      这篇文章主要介绍了.NET垃圾回收器(GC)原理浅析,本文先是讲解了一些基础知识如托管堆(Managed Heap)、CPU寄存器(CPU Register)、根(Roots)等,然后讲解了垃圾回收的基本原理、算法等,需要的朋友可以参考下
      2015-01-01
    • C#实现复制文件夹中文件到另一个文件夹的方法

      C#实现复制文件夹中文件到另一个文件夹的方法

      这篇文章主要介绍了C#实现复制文件夹中文件到另一个文件夹的方法,实例分析了C#实现文件夹的查找、判断及文件复制相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
      2015-07-07

    最新评论

  • 贵州省社科规划办与贵州日报社合作推出“文化贵州”专栏 2019-03-20
  • 就算不为了世界杯,俄罗斯也有那么多时髦好去处值得你飞去 2019-03-20