软件编程
位置:首页>> 软件编程>> C#编程>> c#在程序中定义和使用自定义事件方法总结

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

作者:laozhang  发布时间:2022-07-12 01:45:30 

标签:c#,自定义事件

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

}

}

 

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com