C#中的多播委托和泛型委托实例分析
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇"C#中的多播委托和泛型委托实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇
千家信息网最后更新 2025年01月18日C#中的多播委托和泛型委托实例分析
这篇"C#中的多播委托和泛型委托实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C#中的多播委托和泛型委托实例分析"文章吧。
多播委托
简介
每一个委托都是继承自MulticastDelegate,也就是每个都是多播委托。
带返回值的多播委托只返回最后一个方法的值
多播委托可以用加减号来操作方法的增加或者减少。
给委托传递相同方法时 生成的委托实例也是相同的(也就是同一个委托)
代码实现
//声明委托 delegate void MulticastTest(); public class MulticastDelegateTest { public void Show() { MulticastTest multicastTest = new MulticastTest(MethodTest); multicastTest(); Action action =new Action(MethodTest); action = (Action)MulticastDelegate.Combine(action, new Action(MethodTest2)); action = (Action)MulticastDelegate.Combine(action, new Action(MethodTest3)); action = (Action)MulticastDelegate.Remove(action, new Action(MethodTest3)); action(); //等同于上面 action = MethodTest; action += MethodTest2; action += MethodTest3; action -= MethodTest3; foreach (Action action1 in action.GetInvocationList()) { action1(); } Console.WriteLine("=========="); action(); Funcfunc = () => { return "我是Lambda"; }; func += () => { return "我是func1"; }; func += () => { return "我是func2"; }; func += GetTest; func += GetTest; //给委托传递相同方法时 生成的委托实例也是相同的(也就是同一个委托) string result = func(); Console.WriteLine(result); Console.WriteLine("=========="); } #region 委托方法 public void MethodTest() { Console.WriteLine("我是方法MethodTest()1"); } public void MethodTest2() { Console.WriteLine("我是方法MethodTest()2"); } public void MethodTest3() { Console.WriteLine("我是方法MethodTest()3"); } public string GetTest() { return "我是方法GetTest()"; } #endregion }
泛型委托
代码实现
//泛型委托声明 delegate void GenericDelegate(T t); public class GenericDelegate { public static void InvokeDelegate() { GenericDelegate genericDelegate = new GenericDelegate (Method1); genericDelegate("我是泛型委托1"); //官方版本(不带返回值) Action action = new Action (Method1); action("我是泛型委托1"); //Action GenericDelegate genericDelegate1 = new GenericDelegate (Method2); genericDelegate1(2); //官方版本(带回值) Func func = new Func (Method3); string ret = func("我是带返回值Func委托"); Console.WriteLine( ret ); //Func } #region 委托方法 public static void Method1(string str) { Console.WriteLine(str); } public static void Method2(int num) { Console.WriteLine("我是泛型委托2 "+num); } public static string Method3(string str ) { return str; } #endregion }
以上就是关于"C#中的多播委托和泛型委托实例分析"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
委托
方法
实例
内容
相同
实例分析
C#
分析
也就是
代码
官方
文章
版本
知识
篇文章
生成
价值
减号
大部分
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
乐词数据库加载失败
济南新航线网络技术
天津 北京 网络安全 工作
数据库1267
汽车行业数据库选型
sql2000数据库服务未启动
软件开发系统架构知识
数据库导论要先学什么
卖车数据库一般有什么意思
美国计算机协会提供的数据库
西安软件开发公司哪些比较好
数据库id用什么好
新中大 服务器连接
自建云服务器成本
网络安全能力标签
数据库基础教程第三版第五章答案
计算机网络技术中职课件
教育局网络安全宣传活动报道
网络安全指导意义
局域网 服务器 工作站
微信摇一摇赛跑软件开发
软件开发和商务电商哪个好
江苏乾坤网络技术有限公司
互联网科技公司的价值观
北辰区项目网络技术答疑解惑
客舱服务器代码
互联网的黑白科技
网络安全员优秀员工
西藏集群服务器
docker共享多台服务器