服装价格变动,触发淘宝发布活动和消费者购买衣服事件流
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
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; } } |
调用:
1
2
|
clothes.Price = 300; EventStandard.Show(); |
1
2
|
clothes.Price = 98; EventStandard.Show(); |
以上就是C# 标准事件流实例代码的详细内容,更多关于C# 标准事件流的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/netlws/archive/2020/07/23/13364010.html