首页 > 编程语言 >C# 标准事件模式示例

C# 标准事件模式示例

时间:2024-09-13 11:03:08浏览次数:1  
标签:LastPrice 示例 C# decimal 模式 PriceChanged price public stock

 1 using System;
 2 
 3 namespace ConsoleApp3_Test
 4 {
 5 
 6     internal class Aa
 7     {
 8 
 9         static void Main(string[] args)
10         {
11             Stock stock = new Stock("THPW"); 
12             stock.Price = 27.10M;
13 
14             //Register with the PriceChanged event
15             stock.PriceChanged += stock_PriceChanged;
16             stock.Price = 31.59M;
17         }
18 
19         static void stock_PriceChanged(object sender, PriceChangedEventArgs e)
20         {
21             Console.WriteLine($"LastPrice:{e.LastPrice}\t\tNewPrice:{e.NewPrice}");
22 
23             if (e.LastPrice != 0 && (e.NewPrice - e.LastPrice) / e.LastPrice > 0.1M)
24                 Console.WriteLine("Alert, 10% stock price increase!");
25 
26             Console.WriteLine();
27         }
28     }
29 
30     public class PriceChangedEventArgs : EventArgs
31     {
32         public readonly decimal LastPrice;
33         public readonly decimal NewPrice;
34 
35         public PriceChangedEventArgs(decimal lastPrice, decimal newPrice)
36         {
37             LastPrice = lastPrice;
38             NewPrice = newPrice;
39         }
40     }
41 
42     public class Stock
43     {
44         string symbol;
45         decimal price;
46         public Stock(string symbol) { this.symbol = symbol; }
47 
48         public event EventHandler<PriceChangedEventArgs> PriceChanged;
49 
50         protected virtual void OnPriceChanged(PriceChangedEventArgs e)
51         {
52             PriceChanged?.Invoke(this, e);
53         }
54 
55         public decimal Price
56         {
57             get { return price; }
58             set
59             {
60                 if (price == value) return;
61                 decimal oldPrice = price;
62                 price = value;
63                 OnPriceChanged(new PriceChangedEventArgs(oldPrice, price));
64             }
65         }
66     }
67 }

 

标签:LastPrice,示例,C#,decimal,模式,PriceChanged,price,public,stock
From: https://www.cnblogs.com/sound-of-wind-rain/p/18411838

相关文章

  • centos7搭建DNS服务和DNS辅助服务
    主服务器准备二台linux虚拟机(一个服务器主服务器,一个为辅助服务器)[root@cs01~]#yuminstallbind-y#安装dns服务[root@cs01~]#systemctlstopfirewalld.service#关闭防火墙[root@cs01~]#setenforce0#设置宽容模式 [root@cs01~]#ls/etc/|grepnamed #查看DN......
  • Apache SeaTunnel Committer 进阶指南
    ApacheSeaTunnel作为一个开源的数据集成工具,旨在简化和加速海量数据的采集和传输。社区的Committer是指拥有项目存储库的写权限的社区成员,即Committer可以自行修改代码、文档和网站,也可以合并其他成员的贡献。成为ApacheSeaTunnelCommitter没有严格的规则,实际上,新Comm......
  • 【ComfyUI】轻松一键视频转动漫!太棒了!超强稳定视频转绘工作流,如此丝滑~!
    今天就给大家带来了这一款超稳定视频转动漫风格工作流。视频转绘这么火的赛道下,老铁们怎么能不会呢。下面我们一起来看一看。DiffSynth-Studio介绍**项目地址:DiffSynthStudio是一款Diffusion引擎。它重构了包括TextEncoder、UNet、VAE等在内的架构,在增强计算性能......
  • 【KB】如何在谷歌Chrome浏览器新的标签页隐藏书签栏
    常规如果您使用GoogleChrome浏览器,您可能会注意到默认书签栏(或收藏栏)可以通过以下方式启用或禁用:按Ctrl+Shift+B快捷键显示或隐藏书签栏或者点击右上角3个点的菜单,选择/取消选择“书签->显示书签栏”选项\打开Chrome设置页面;在在弹出的菜单部分打开/关闭“显示书签栏”选项或者......
  • CNN是怎么处理时序数据并得到预测结果
    作为一名深度学习学生,经常会被问到各种模型如何应用于不同领域的问题,今天我们来聊聊卷积神经网络(CNN)是如何处理时序数据并得到预测结果的。虽然CNN最初是为图像识别而设计的,但通过一些巧妙的方法,它也能有效地处理时序数据,如股票价格预测、天气预测等场景。1.CNN与时序......
  • vue3 + vite 使用 vite-plugin-svg-icons 插件显示本地 svg 图标的方法
    1.安装vite-plugin-svg-icons插件yarnaddvite-plugin-svg-icons-D//或者npminstallvite-plugin-svg-icons-D//或者pnpminstallvite-plugin-svg-icons-D2.使用vite-plugin-svg-icons插件2.1在项目根目录查找vite.config.js,进行配置import{createS......
  • LeeCode打卡第二十四天
    LeeCode打卡第二十四天第一题:对称二叉树(LeeCode第101题):给你一个二叉树的根节点root,检查它是否轴对称。/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){......
  • MetaMask手动添加网络(连接Ganache)
    下图中的ganache是我自己之前添加的网络,下面说明具体操作步骤:首先,登录进去之后点击页面下方的添加网络;然后,点击手动添加网络;最后,按照Ganache的地址配置网络,保存即可 网络名称:随便取,自己认识即可新的RPCURL:Ganache中RPCSERVER部分显示,如下图所示链ID:1337货币符号:ETH区......
  • 通过MetaMask调用Ganache
    MetaMask是基于浏览器的以太坊开源插件钱包,可以在MicrosoftEdge或者谷歌浏览器下载安装,个人用起来感觉MicrosoftEdge下,使用这个插件更顺畅;Ganache相当于一个运行在本地的私有链,本人选择下载的是图形化界面,用起来更友好,运行之后可以选择快速开始,或者创建newworkplace(二者......
  • C++入门基础
    个人主页:Jason_from_China-CSDN博客所属栏目:C++系统性学习_Jason_from_China的博客-CSDN博客前言 这一篇章算是C++栏目的语法的第一篇章,主要是为类和对象打下基础,介绍一些C++基本的语法结构这里提醒一下,要是看不懂第一步创建文件的,其实更建议先学习一下C语言,因为C++的......