当前位置: 移动技术网 > IT编程>开发语言>c# > c#在程序中定义和使用自定义事件方法总结

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
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);

  }

}

 

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

相关文章:

验证码:
移动技术网