-
C# 两个类间传递消息
运行环境:Window10,.Net7.0; 编者:乌龙哈里 2023-01-13
经常碰到两个控件需要相互传递消息,这时候需要用到事件。比如现有两个类如下:
class AA { private string Text = "AA"; public void SetText(string s) { Text = s; } public void Show() { Console.WriteLine(Text); } } class BB { private string Text = "BB"; public void OnClick() { } }
我们需要 BB.OnClick() 后把 AA 的 Text 字段内容变成 BB.Text 的内容。这时候需要事件。事件按我的理解就是把 AA 的一个方法弄到 BB 内执行。在本文中就是 BB 也能执行 AA.SetText(string s) 这个方法。
在BB类内改造步骤:
1、根据 AA类的方法 void SetText(string s) 在 BB类 中声明一个代理 public delegate void SetValue(string s);
2、再把代理声明成事件 public event SetValue SetValueEvent;
3、最后,在 BB 类的 OnClick() 方法中运行事件。
改完的 BB 类如下:
class BB { private string Text = "BB"; public delegate void SetValue(string s); public event SetValue? SetValueEvent; public void OnClick() { if (SetValueEvent != null) { SetValueEvent(Text); } } }
整体运行如下:
var aa = new AA(); var bb = new BB(); aa.Show();//=>输出:AA //把 BB 的事件绑定到 AA 的 SetText 方法 bb.SetValueEvent += aa.SetText; //运行 BB 调用事件的方法 OnClick() bb.OnClick(); aa.Show();//=>输出:BB。aa.Text 的内容已经改变成 BB 了
出处:https://www.cnblogs.com/leemano/p/17050266.html
栏目列表
最新更新
go语言写http踩得坑
【Python】爬虫笔记-从PyMySQL到DBUtils
【Python】爬虫笔记-开源代理池haipproxy使用
Python规范:提高可读性
C语言两结构体之间的成员互换
【爬虫实战项目】Python爬取Top100电影榜单
linux(Ubuntu)安装python
anaconda peompt 、labalimg 数据标注
【Python数据分析案例】python数据分析老番
【爬虫+情感判定+Top10高频词+词云图】“
一次SQL调优 聊一聊 SQLSERVER 数据页
聊一聊 SQLSERVER 的行不能跨页
再聊一下那 SQLSERVER 行不能跨页的事
大数据概述
支线第九篇:
数据库的值获取过来转换成Json数组的方法
支线第八篇:数据类型转换
支线第七篇:又是解决报错
支线第六篇:停下脚步,理清思路
支线第五篇:配置接口
【JS】原始类型是值类型吗?存储在栈上
C# List<T> 转 DataTable
C# List<T> 转 DataTable
C# List<T> 转 DataTable 方法修改版
使用插件式开发称重仪表驱动,RS232串口
实现简单的csv文件上传和bootstrap表格的下
第一百一十七篇: JavaScript 工厂模式和原型
第一百一十六篇: JavaScript理解对象
第一百一十五篇: JS集合引用类型Map
第一百一十四篇: JS数组Array(三)数组常