劉鐵猛老師視訊課程“事件”講解程式
劉鐵猛老師視訊課程“事件”講解程式
namespace DelegateExample
{
class Program
{
static void Main(string[] args)
{
Customer customer = new Customer();
Waiter waiter = new Waiter();
customer.Order += waiter.Action;
customer.Action();
customer.PayTheBill();
}
}
public class OrderEventArgs : EventArgs
{
public OrderEventArgs()
{
}
public string DishName { get; set; }
public string Size { get; set; }
}
public delegate void OrderEventHandler(Customer cunstomer, OrderEventArgs e);
public class Customer
{
private OrderEventHandler orderEventHandler;
public event OrderEventHandler Order
{
add
{
this.orderEventHandler += value;
}
remove
{
this.orderEventHandler -= value;
}
}
public double Bill { get; set; }
public void PayTheBill()
{
Console.WriteLine("I will pay the Bill {0}", this.Bill);
}
public void WalkIn()
{
Console.WriteLine("Walk into the restaurant");
}
public void SitDown()
{
Console.WriteLine("Sit Down");
}
public void Think()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Let me think...");
Thread.Sleep(1000);
}
if (this.orderEventHandler != null)
{
OrderEventArgs e = new OrderEventArgs
{
DishName = "KongPao Chicken",
Size = "large"
};
this.orderEventHandler.Invoke(this, e);
}
}
public void Action()
{
Console.ReadKey();
this.WalkIn();
this.SitDown();
this.Think();
}
}
public class Waiter
{
public void Action(Customer customer, OrderEventArgs e)
{
Console.WriteLine("I will server you the dish {0}", e.DishName);
double price = 10.0;
switch (e.Size)
{
case "small":
price *= 0.5;
break;
case "large":
price *= 1.5;
break;
default:
break;
}
customer.Bill += price;
}
}
}
相關文章
- 廣州 各大學計算機老師 DBA 課程 講課完畢..計算機
- 大資料公開課系列課程第二季-趙強老師-專題視訊課程大資料
- 九寶老師公開課第3講:微信公眾號各介面功能演示-CSDN公開課-專題視訊課程
- 2021年監理工程師講座視訊_全套視訊課程真題解析工程師
- 外聘的計算機老師講課計算機
- 趙強老師:大資料從入門到精通(1)Linux基礎-趙強老師-專題視訊課程大資料Linux
- C語言系列之 考試講解-尹成-專題視訊課程C語言
- 趙強老師:初級學習大資料:Java基礎(1)Java入門-趙強老師-專題視訊課程大資料Java
- 人工智慧-數學基礎視訊課程-唐宇迪-專題視訊課程人工智慧
- 開始錄製dnmp整合開發環境 視訊精講課程開發環境
- MySQL資料庫基礎學習筆記(整理自蘇勇老師的MySQL基礎課程視訊)MySql資料庫筆記
- vuejs 免費視訊課程VueJS
- Github視訊教程-黃棒清-專題視訊課程Github
- OpenGL視訊教程-黃棒清-專題視訊課程
- Python-多程式-尹成-專題視訊課程Python
- 結束東北地區 大學老師 ORACLE DBA 講課(長春)Oracle
- 機器學習工程師31門課程(視訊):從新手到專業機器學習工程師
- 微服務入門【系列視訊課程】微服務
- 微信小程式開發祕籍-CSDN公開課-專題視訊課程微信小程式
- Google Drive 視訊教程-黃棒清-專題視訊課程Go
- 微信小程式實戰教程-閆濤-專題視訊課程微信小程式
- 結束 ORACLE DBA For 河南省的各大學老師的講課Oracle
- Python全棧視訊教程-尹成-專題視訊課程Python全棧
- JavaSE之異常實戰視訊課程Java
- 專案實戰視訊課程:美團網(Vue2+Node.js+Express+支付+Electron)-李寧-專題視訊課程...VueNode.jsExpress
- python全棧工程師-CSDN就業班-專題視訊課程Python全棧工程師就業
- UI設計師成長之路-CSDN就業班-專題視訊課程UI就業
- Python-多程式檢索-尹成-專題視訊課程Python
- 推薦一些具有真正實操意義的專家講師視訊學習課程及blog地址
- 跟著王進老師學開發C#篇第二季:物件導向-王進-專題視訊課程C#物件
- chrome瀏覽器視訊教程-黃棒清-專題視訊課程Chrome瀏覽器
- 招聘Go語言課程講師(西安地區兼職)Go
- 臺大林軒田老師關於coursera機器學習課程的宣告機器學習
- 2017年11月軟考網路工程師上午真題解析軟考視訊軟考培訓課程-徐朋-專題視訊課程...工程師
- 視訊課程-迴圈中呼叫非同步方法非同步
- 最乾貨 Go 進階講義搶先披露——毛老師培訓課堂開課了!Go
- AI工程師百天計劃-CSDN就業班-專題視訊課程AI工程師就業
- 企業級實戰大資料課程(一)-尹成-專題視訊課程大資料