当前位置: 移动技术网 > IT编程>开发语言>c# > C#自定义事件及用法实例

C#自定义事件及用法实例

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例讲述了c#自定义事件及用法。分享给大家供大家参考。具体分析如下: 事件是c#中一个重要的内容,msdn上有一个自定义事件的演示示例。我看了半天有点晕,所以新建了一

本文实例讲述了c#自定义事件及用法。分享给大家供大家参考。具体分析如下:

事件是c#中一个重要的内容,msdn上有一个自定义事件的演示示例。我看了半天有点晕,所以新建了一个winform工程添加了一个按钮,然后找出调用的程序,一对比做了一个类似的示例,就明白了。看代码有时候比看文档来得更快。
所以还是一贯的原则,来干的,不来稀的。

using system;
namespace testeventargs
{
 /// <summary>
 /// 这个类对应于eventargs,做对比学习。
 /// 添加两个内容:info1,info2。
 /// </summary>
 public class myeventargs : eventargs
 {
  private string info1;
  private uint32 info2;
  public myeventargs(string info1, uint32 info2)
  {
   this.info1 = info1;
   this.info2 = info2;
  }
  public string info1
  {
   get { return this.info1; }
   set { this.info1 = value; }
  }
  public uint32 info2
  {
   get { return this.info2; }
   set { this.info2 = value; }
  }
 }
 /// <summary>
 /// 仿真button按钮
 /// </summary>
 public class mybutton
 {
  public delegate void myevnethandler(object sender, myeventargs e);
  /// <summary>
  /// 按钮点击的次数计数器
  /// </summary>
  public static uint32 clicked_num = 0;
  public event myevnethandler myclick;
  public void 触发()
  {
   myeventargs arg = new myeventargs(datetime.utcnow.tostring(), ++clicked_num);
   myclick(this, arg);
  }
 }
 /// <summary>
 /// 仿真form窗体
 /// </summary>
 public class myform
 {
  public mybutton 按钮;
  public myform()
  {
   按钮 = new mybutton();
   按钮.myclick += new mybutton.myevnethandler(this.button_clicked);
  }
  public void button_clicked(object sender, myeventargs e)
  {
   console.writeline("button clicked(sender is:" + sender.tostring() + "; info1 = "
    + e.info1 + "; info2 = " + e.info2);
  }
 }
 class program
 {
  static void main(string[] args)
  {
   myform 窗体 = new myform();
   for (int i = 0; i < 10; i++ )
   {
    窗体.按钮.触发();
    system.threading.thread.sleep(500);
   }
   console.writeline("press any key to continue...");
   console.readkey();
  }
 }
}

希望本文所述对大家的c#程序设计有所帮助。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网