.NET提供了100個事件 參數類,這些都繼承於EventArgs類.一般情況下,使用.Net自帶的類足夠了,但為了說明原理,我們自定義一 個事件參數類.
試一試:使用事件參數
//事件參數
public class NumberOfThIEfEventArgs : EventArgs
{
public int numberOfThIEf;
//構造函數
public NumberOfThIEfEventArgs(int number)
{
numberOfThIEf = number;
}
}
//事 件發送者
class Dog
{
//1.聲明關於事件的委托;
public delegate void AlarmEventHandler(object sender, NumberOfThIEfEventArgs e);
//2. 聲明事件;
public event AlarmEventHandler Alarm;
//3.編寫引發事件的 函數,注意多了個參數;
public void OnAlarm(NumberOfThIEfEventArgs e)
{
if(this.Alarm != null)
{
Console.WriteLine("\n狗報警: 有小偷進來了,汪汪~~~~~~~\n");
this.Alarm(this, e);
}
}
}
//事件接收者
class Host
{
//4.編寫事件處理程序,參數中包 含著numberOfThIEf信息
void HostHandleAlarm(object sender, NumberOfThIEfEventArgs e)
{
if (e.numberOfThIEf <= 1)
{
Console.WriteLine("主 人: 抓住了小偷!");
}
else
{
Console.WriteLine("主 人:打110報警 ,我家來了{0}個小偷!", e.numberOfThIEf);
}
}