欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-18 23:51:46
c#在程序中定义和使用自定义事件可以分为以下几个步骤: 步骤1:在类中定义事件 using system; public class testclass...

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

  }

}