C#中实现自定义事件的源码演示

如下代码内容是关于C#中实现自定义事件的演示的代码。

using System;

namespace TestEventArgs
{
public class MyEventArgs : EventArgs
{
private String info1;
private UInt32 info2;

	public MyEventArgs(String info1, UInt32 info2)
	{
		this.info1 = info1;
		this.info2 = info2;
	}

	public String Info1
	{
		get { return this.info1; }
		set { this.info1 = value; }
	}

	public UInt32 Info2
	{
		get { return this.info2; }
		set { this.info2 = value; }
	}
}

public class MyButton
{
	public delegate void MyEvnetHandler(object sender, MyEventArgs e);
	public static UInt32 clicked_num = 0;
	public event MyEvnetHandler MyClick;

	public void 触发()
	{
		MyEventArgs arg = new MyEventArgs(DateTime.UtcNow.ToString(), ++clicked_num);
		MyClick(this, arg);
	}
}

public class MyForm
{
	public MyButton 按钮;
	public MyForm()
	{
		按钮 = new MyButton();
		按钮.MyClick += new MyButton.MyEvnetHandler(this.button_Clicked);
	}


	public void button_Clicked(object sender, MyEventArgs e)
	{
		Console.WriteLine("button clicked(sender is:" + sender.ToString() + "; info1 = "
			+ e.Info1 + "; info2 = " + e.Info2);
	}
}

class Program
{
	static void Main(string[] args)
	{
		MyForm 窗体 = new MyForm();
		for (int i = 0; i < 10; i++ )
		{
			窗体.按钮.触发();
			System.Threading.Thread.Sleep(500);
		}
		Console.WriteLine("Press any key to continue...");
		Console.ReadKey();
	}
}

}

不同的地方:1本示例中delegatemyevnethandler是mybutton类内部成员,在系统中eventhander是system命名空间下的一个成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值