.net自定義事件示例分享
1、新建一個(gè)控制臺(tái)應(yīng)用程序TestDelegate,本項(xiàng)目主要實(shí)現(xiàn):熱水器加熱,報(bào)警器監(jiān)控,當(dāng)熱水溫度達(dá)到80度的時(shí)候報(bào)警器報(bào)警這樣一個(gè)簡(jiǎn)單的事件處理程序
2、定義委托處理程序
public delegate void PlayGameHandler(object sender, System.EventArgs e);
3、添加一個(gè)報(bào)警器類(lèi),報(bào)警方法只有在溫度超過(guò)80度的時(shí)候會(huì)被調(diào)用
// 負(fù)責(zé)報(bào)警的人
public class 報(bào)警器
{
public 報(bào)警器()
{
Console.WriteLine("生成報(bào)警器...");
}
public void 報(bào)警(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(100);//休息0.1秒
Console.WriteLine("滴滴。。。。溫度超過(guò)80度...");
}
}
4、添加一個(gè)熱水器類(lèi),利用循環(huán)加熱熱水器,從一度增加到100度,當(dāng)溫度超過(guò)80度時(shí)候觸發(fā)事件報(bào)警
// 如果加熱,則引發(fā)事件
public class 熱水器
{
// 先定義一個(gè)事件,這個(gè)事件表示“熱水器”在加熱。
public event PlayGameHandler PlayGame;
public 熱水器()
{
Console.WriteLine("生成熱水器....");
}
public void 加熱()
{
Console.WriteLine("開(kāi)始加熱了.....");
System.EventArgs e = new EventArgs();
for (int i = 1; i < 101;i++)//溫度每增加一度調(diào)觸發(fā)一次事件
{
System.Threading.Thread.Sleep(100);//休息0.1秒
Console.WriteLine(i.ToString()+"度");
if (PlayGame != null)
{
if(i>=80)//當(dāng)溫度大于80度
PlayGame(this, e);//觸發(fā)事件
}
}
}
}
5、客戶(hù)端開(kāi)始調(diào)用
public class Program
{
//[STAThread]
public static void Main(string[] args)
{
Console.WriteLine("場(chǎng)景開(kāi)始了....");
報(bào)警器 w = new 報(bào)警器();
熱水器 z = new 熱水器();
// 指定監(jiān)視
z.PlayGame += new PlayGameHandler(w.報(bào)警);
System.Threading.Thread.Sleep(1000);
// 開(kāi)始加熱
z.加熱();
Console.WriteLine("場(chǎng)景結(jié)束...");
Console.ReadLine();
}
}

大家運(yùn)行一下可以看到更多數(shù)據(jù)顯示
相關(guān)文章
Coolite Cool Study 2 同時(shí)更新多個(gè)Tab
前段時(shí)間有一個(gè)需求是這樣子的——錄入一個(gè)查詢(xún)條件, 出來(lái)的查詢(xún)結(jié)果是多張頁(yè)面。不知道有沒(méi)朋友遇到這個(gè)問(wèn)題。 展現(xiàn)的效果大概是這個(gè)樣子2009-05-05ASP.NET批量操作基于原生html標(biāo)簽的無(wú)序列表的三種方法
無(wú)序列表被大量使用,ASP.NET雖然內(nèi)置了BulletedList控件,用于創(chuàng)建和操作無(wú)序列表,但感覺(jué)不太好用2014-09-09一個(gè)簡(jiǎn)單的asp.net 單點(diǎn)登錄實(shí)現(xiàn)
上次做了學(xué)校的火車(chē)訂票系統(tǒng),那邊要求要從學(xué)生信息平臺(tái)直接點(diǎn)過(guò)來(lái)就是登錄狀態(tài),不用在重新登錄。學(xué)生信息平臺(tái)原來(lái)是用asp做的,而火車(chē)訂票系統(tǒng)是asp.net做的。兩個(gè)網(wǎng)站的學(xué)生信息調(diào)用的是同一個(gè)數(shù)據(jù)庫(kù)。2009-11-11探究ASP.NET Core Middleware實(shí)現(xiàn)方法
這篇文章主要介紹了探究ASP.NET Core Middleware實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Asp.Net平臺(tái)下的圖片在線裁剪功能的實(shí)現(xiàn)代碼(源碼打包)
最近項(xiàng)目中有個(gè)圖片在線裁剪功能,本人查找資料,方法如下:前臺(tái)展現(xiàn)用jquery.Jcrop實(shí)現(xiàn),后臺(tái)使用 System.Drawing.Image類(lèi)來(lái)進(jìn)行裁剪2011-10-10.Net基于Thread實(shí)現(xiàn)自旋鎖的三種方式
本文主要講解.Net基于Thread實(shí)現(xiàn)自旋鎖的三種方式,基于Test--And--Set原子操作實(shí)現(xiàn),包含優(yōu)缺點(diǎn)介紹,感興趣的朋友跟隨小編一起看看吧2021-06-06.Net Core在程序的任意位置使用和注入服務(wù)的方法
這篇文章主要介紹了.Net Core在程序的任意位置使用和注入服務(wù)的方法,很多朋友對(duì)此問(wèn)題都不是很清楚,于是寫(xiě)這篇文章幫助大家學(xué)習(xí),需要的朋友可以參考下2018-10-10