【.Net】使用委托实现被引用的项目向上级项目的消息传递事件

简介: 在实际项目过程中,经常可能遇到被引用的项目要向上传递消息,但是又不能通过方法进行返回等操作,这个时候委托就派上用场了。以下使用委托,来实现被引用的项目向上传递消息的小教程,欢迎各位大佬提供建议。1、新增控制台项目(一般在CS架构中会用的比较多,用于跨线程传递消息使用)。此处用一个控制台项目来模拟演示使用委托进行消息事件的传递教程。


前言:在实际项目过程中,经常可能遇到被引用的项目要向上传递消息,但是又不能通过方法进行返回等操作,这个时候委托就派上用场了。以下使用委托,来实现被引用的项目向上传递消息的小教程,欢迎各位大佬提供建议。


1、新增控制台项目(一般在CS架构中会用的比较多,用于跨线程传递消息使用)。此处用一个控制台项目来模拟演示使用委托进行消息事件的传递教程。

1995789-20211206233149857-665457750.png

 

2、新增了一个.net 6控制台项目,然后先放一边,后面使用。

 

1995789-20211206233156969-663134035.png

 

3、在解决方案下面新增一个类库项目。

1995789-20211206233204196-1979124253.png

 

4、项目名称,此处叫DelegateTestLibrary

 1995789-20211206233212009-1209769230.png

 

5、在新建的项目里面,新增一个测试类TestService,并在类上面定义一个带有两个string参数的公开的委托TestDelegate(string par1,string par2);

参数类型可以自由定义,用于传递消息使用。

1995789-20211206233219731-152983421.png

 

6、然后在类里面新增一个事件,事件类型为委托名称。并且定义一个方法,叫DoDelegateHandle,可以做个简单处理,然后用于给事件传递消息使用。参数可以自定义。或者确保OnTest事件不为null的情况下,也可以省略这一步操作,直接丢数据。

 1995789-20211206233227358-397313372.png

 

7、新增一个测试方法,用来传递消息。传递的消息参数有当前的数值吗,以及时间。

 1995789-20211206233236774-1237420469.png

 

8、控制台项目引用刚才的类库项目。

1995789-20211206233245979-1731254884.png

 

9、控制台项目新增一个中间类,用于做测试使用。并且在构造函数内定义事件。

写事件的时候,VS自带快捷键,+=以后,可以按Tab按键,会自动生成一个对应的事件方法,并且参数和委托的参数保持一致。在里面进行修改一些业务就可以了。

 1995789-20211206233258225-1065690508.png

 

10、在控制台program文件里面,实例化刚才的测试对象,然后进行测试。

1995789-20211206233312288-1381968521.png


11、启动项目,可以看到被引用的项目里面执行消息传送的地方(TestService)所发送的消息,被传到了Realization类里面的事件方法里面去了。

1995789-20211206233322052-1944043216.png

 

12、总结一下:委托和事件在传统的开发过程中很常见,应该很多大佬们都会。如果以前没有玩过委托的大佬们,可以自行尝试玩玩。祝大佬们玩代码愉快~~也欢迎留下宝贵的建议、或点赞或推荐,感谢~~

 

创作不易,且转且留下出处:https://www.cnblogs.com/weskynet/p/15652569.html


目录
相关文章
|
1月前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
3月前
|
存储 开发框架 NoSQL
ASP.NET WEB——项目中Cookie与Session的用法
ASP.NET WEB——项目中Cookie与Session的用法
41 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET WEB——项目创建与文件上传操作
ASP.NET WEB——项目创建与文件上传操作
48 0
|
6月前
|
关系型数据库 API 数据库
盘点10个.NetCore实用的开源框架项目
盘点10个.NetCore实用的开源框架项目
366 0
盘点10个.NetCore实用的开源框架项目
|
4月前
|
开发框架 安全 .NET
IIS服务器发布ASP.NET项目
对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以IIS服务器发布ASP.NET项目为例。
50 1
|
8天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
2月前
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
168 2
|
3月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
3月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
36 0
|
4月前
|
数据采集 开发框架 JavaScript
C#/.NET/.NET Core优秀项目和框架2023年12月简报
C#/.NET/.NET Core优秀项目和框架2023年12月简报