服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# 标准事件流实例代码

C# 标准事件流实例代码

2022-09-28 15:43滑猪小板 C#

这篇文章主要介绍了C# 标准事件流的实例代码,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

服装价格变动,触发淘宝发布活动和消费者购买衣服事件流

?
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();

C# 标准事件流实例代码

?
1
2
clothes.Price = 98;
EventStandard.Show();

C# 标准事件流实例代码

以上就是C# 标准事件流实例代码的详细内容,更多关于C# 标准事件流的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/netlws/archive/2020/07/23/13364010.html

延伸 · 阅读

精彩推荐
  • C#C# 在PDF文档中创建表格的实现方法

    C# 在PDF文档中创建表格的实现方法

    表格能够一目了然的让用户看到数据信息,使信息显得有条理化,那么在pdf类型的文档中如何来添加表格并对表格进行格式化操作呢?下面小编给大家带来...

    E-iceblue11422022-02-17
  • C#C# 使用WPF 用MediaElement控件实现视频循环播放

    C# 使用WPF 用MediaElement控件实现视频循环播放

    在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放、暂停、停止。这篇文章给大家介绍了C# 使用WPF 用MediaElement控件实现...

    C#教程网8892022-02-23
  • C#分享我在工作中遇到的多线程下导致RCW无法释放的问题

    分享我在工作中遇到的多线程下导致RCW无法释放的问题

    最近在做项目中遇到一个问题,在调用一个类库中的方法时,出现如下异常信息:尝试释放正在使用的RCW,活动线程或其他线程上正在使用该 RCW,释放正在...

    眼神与背影5902021-11-05
  • C#基于C#技术实现身份证识别功能

    基于C#技术实现身份证识别功能

    这篇文章主要介绍了基于C#技术实现身份证识别功能的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    歌神的卖4232021-12-01
  • C#WPF TextBox和PasswordBox添加水印

    WPF TextBox和PasswordBox添加水印

    这篇文章主要为大家详细介绍了WPF TextBox和PasswordBox添加水印的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    眾尋11582021-12-09
  • C#C#简单生成随机密码的方法示例

    C#简单生成随机密码的方法示例

    这篇文章主要介绍了C#简单生成随机密码的方法,结合具体实例形式分析了C#生成随机密码操作的前台界面与后台处理技巧,需要的朋友可以参考下...

    zhangsiyan6282022-01-10
  • C#浅析C#中结构与类的区别

    浅析C#中结构与类的区别

    本文主要对C#结构与类的区别进行简要分析,文中举了实例,便于理解,具有很好的参考价值,需要的朋友一起来看下吧...

    反骨仔(二五仔)10682021-12-15
  • C#Unity3D实现摄像机镜头移动并限制角度

    Unity3D实现摄像机镜头移动并限制角度

    这篇文章主要为大家详细介绍了Unity3D实现摄像机镜头移动并限制角度,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一...

    Studious_S5122022-09-07