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