c#在程序中定义和使用自定义事件方法总结
C#在程序中定义和使用自定义事件可以分为以下几个步骤:
步骤1:在类中定义事件
usingSystem;
publicclassTestClass
{
//....
publiceventEventHandlerTestEvent
}
步骤2:定义事件参数
注意:事件参数类TestEventArgs继承自System.EventArgs
usingSystem;
publicclassTestEventArgs:EventArgs
{
publicTestEventArgs():base(){}
publicstringMessage{get;set;}
}
步骤3:在TestClass引发事件
publicclassTestClass
{
//这个方法引发事件
publicvoidRaiseTestEvent(stringmessage)
{
if(TestEvent==null)return;
TestEvent(this,newTestEventArgs{Message=message});
}
publiceventEventHandlerTestEvent;
}
步骤4:使用事件
classProgram
{
staticvoidMain(string[]args)
{
TestClasstc=newTestClass();
//挂接事件处理方法
tc.TestEvent+=Tc_TestEvent;
Console.WriteLine("按任意键引发事件");
Console.ReadKey();
//引发事件
tc.RaiseTestEvent("通过事件参数传递的字符串");
Console.WriteLine("按任意键退出");
Console.ReadKey();
}
privatestaticvoidTc_TestEvent(objectsender,EventArgse)
{
//将事件参数强制转换为TestEventArgs
TestEventArgste=(TestEventArgs)e;
//显示事件参数中的Message
Console.WriteLine(te.Message);
}
}
完整的程序如下
usingSystem;
publicclassTestClass
{
publicvoidRaiseTestEvent(stringmessage)
{
if(TestEvent==null)return;
TestEvent(this,newTestEventArgs{Message=message});
}
publiceventEventHandlerTestEvent;
}
publicclassTestEventArgs:EventArgs
{
publicTestEventArgs():base(){}
publicstringMessage{get;set;}
}
classProgram
{
staticvoidMain(string[]args)
{
TestClasstc=newTestClass();
tc.TestEvent+=Tc_TestEvent;
Console.WriteLine("按任意键引发事件");
Console.ReadKey();
tc.RaiseTestEvent("通过事件参数传递的字符串");
Console.WriteLine("按任意键退出");
Console.ReadKey();
}
privatestaticvoidTc_TestEvent(objectsender,EventArgse)
{
TestEventArgste=(TestEventArgs)e;
Console.WriteLine(te.Message);
}
}
热门推荐
1 留学生祝福语简短
10 生日奶茶红包祝福语简短
11 元旦祝福语 简短独特群发
12 幼师离别祝福语老师简短
13 生日祝福语已婚朋友简短
14 欢送退休人员简短祝福语
15 朋友儿子点灯祝福语简短
16 圣诞祝福语大全简短星座
17 六一祝贺文案祝福语简短
18 升学宴同学祝福语简短