C# 标准事件流实例代码
更新时间:2020年07月23日 08:32:37 作者:滑猪小板
这篇文章主要介绍了C# 标准事件流的实例代码,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
服装价格变动,触发淘宝发布活动和消费者购买衣服事件流
public class EventStandard { public class Clothes { /// <summary> /// 服装编码 /// </summary> public string Id { get; set; } /// <summary> /// 服装名称 /// </summary> public string Name { get; set; } /// <summary> /// 服装价格 /// </summary> private double _price; public double Price { get { return this._price; } set { PriceRiseHandler?.Invoke(this, new PriceEventArgs() { OldPrice = this._price, NewPrice = value }); this._price = value; } } /// <summary> /// 服装价格变动事件 /// </summary> public event EventHandler PriceRiseHandler; } /// <summary> /// 衣服价格事件参数 一般会为特定的事件去封装个参数类型 /// </summary> public class PriceEventArgs : EventArgs { public double OldPrice { get; set; } public double NewPrice { get; set; } } public class TaoBao { /// <summary> /// 淘宝订户 /// </summary> public void PublishPriceInfo(object sender, EventArgs e) { Clothes clothes = (Clothes)sender; PriceEventArgs args = (PriceEventArgs)e; if (args.NewPrice < args.OldPrice) Console.WriteLine($"淘宝:发布衣服价格下降的公告,{clothes.Name}服装直降{args.OldPrice - args.NewPrice}元,限时抢购!"); else Console.WriteLine("淘宝:价格悄悄上涨或价格未变化,啥也不做"); } } public class Consumer { /// <summary> /// 消费者订户 /// </summary> public void Buy(object sender, EventArgs e) { Clothes clothes = (Clothes)sender; PriceEventArgs args = (PriceEventArgs)e; if (args.NewPrice < args.OldPrice) Console.WriteLine($"消费者:之前价格{args.OldPrice},现在价格{args.NewPrice},果断买了!"); else Console.WriteLine($"消费者:等等看,降价了再说"); } } public static void Show() { Clothes clothes = new Clothes() { Id = "12111-XK", Name = "优衣库", Price = 128 }; //订阅:把订户和发布者的事件关联起来 clothes.PriceRiseHandler += new TaoBao().PublishPriceInfo; clothes.PriceRiseHandler += new Consumer().Buy; //价格变化,自动触发订户订阅的事件 clothes.Price = 300; } }
调用:
clothes.Price = 300; EventStandard.Show();
clothes.Price = 98; EventStandard.Show();
以上就是C# 标准事件流实例代码的详细内容,更多关于C# 标准事件流的资料请关注脚本之家其它相关文章!
相关文章
C# Winform 实现屏蔽键盘的win和alt+F4的实现代码
最近在做一个恶搞程序,就是打开后,程序获得桌面的截图然后,然后全屏显示在屏幕上,用户此时则不能进行任何操作。2009-02-02C# Winform实现导出DataGridView当前页以及全部数据
基本上,所有的业务系统都会要求有导出的功能,所以这篇文章主要为大家介绍了如何利用Winform实现原生DataGridView的导出功能,需要的可以参考一下2023-07-07
最新评论