当前位置: 首页 > news >正文

C# 事件(Event)定义及其使用

1.定义个委托和类

//委托
public delegate void ProductEventHandler(Product product);/// <summary>
/// 产品
/// </summary>
public class Product
{public int Id { get; set; }public string Code { get; set; }public string Name { get; set; }private decimal price;public decimal Price{get { return price; }set{price = value;if(price > 10){//事件触发ProductChanged.Invoke(this);}}}//事件public event ProductEventHandler ProductChanged;/// <summary>/// 模拟业务的异常记录方法/// </summary>/// <param name="product"></param>public void RecordException(Product product){Console.WriteLine($"事件被触发,价格波动异常:{product.Price}");}
}

2.调用(通过属性值得变化去触发事件)

var product = new Product();
product.ProductChanged += product.RecordException;
while (true)
{Console.Write("请输入价格:");var num = Convert.ToDecimal(Console.ReadLine());product.Price = num;
}
http://www.lryc.cn/news/372275.html

相关文章:

  • 2.负载压力测试
  • 【AI工具】jupyter notebook和jupyterlab对比和安装
  • Linux 基本指令3
  • 在Linux系统中,可以使用OpenSSL来生成CSR(Certificate Signing Request)、PEM格式的公钥和PEM格式的私钥。
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 团队派遣(100分) - 三语言AC题解(Python/Java/Cpp)
  • Python数据分析与机器学习在医疗诊断中的应用
  • vite.config.js如何使用env的环境变量
  • MySql几十万条数据,同时新增或者修改
  • 如何提高MySQL DELETE 速度
  • 本地Zabbix开源监控系统安装内网穿透实现远程访问详细教程
  • 从Android刷机包提取System和Framework
  • 分布式光纤测温DTS与红外热成像系统的主要区别是什么?
  • python数据分析-问卷数据分析(地理课)
  • 【ARM64 常见汇编指令学习 19.3 -- ARMv8 三目运算指令 csel 详细介绍】
  • Docker 安装部署(CentOS 8)
  • Python自动化
  • 自然语言处理领域的重大挑战:解码器 Transformer 的局限性
  • 【机器学习】机器学习赋能医疗健康:从诊断到治疗的智能化革命
  • Elasticsearch6.7版本,内网中其他电脑无法连接
  • 交友系统定制版源码 相亲交友小程序源码全开源可二开 打造独特的社交交友系统
  • 数据结构笔记39-48
  • 2-3 基于matlab的NSCT-PCNN融合和创新算法(NSCT-ML-PCNN )图像融合
  • 机器学习笔记 - LoRA:大型语言模型的低秩适应
  • 基于python实现视频和音频长度对齐合成并添加字幕
  • 爬虫-模拟登陆博客
  • 【深度学习】【NLP】Bert理论,代码
  • element table 点击某一行中按钮加载
  • Linux开机自启/etc/init.d和/etc/rc.d/rc.local
  • DP:两个数组的dp问题
  • 嵌入式Linux:格式化I/O