C#中的多播委托和泛型委托实例分析
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇"C#中的多播委托和泛型委托实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇
千家信息网最后更新 2026年11月02日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(); Func func = () => { 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安全错误
数据库的锁怎样保障安全
互联网科技公司华为
科技互联网龙头
互联网科技有限公司经营范围
深圳互联网科技公司
互联网科技金融公司
以房互联网科技
朗涯互联网科技
赫美联合互联网科技
猫创互联网科技
一五八零互联网科技
常德市电业局互联网科技部
互联网企业和科技型企业
金融科技与互联网金融相同和不同
科技互联网大厂
亳州好赞互联网科技有限公司
互联网科技的全部知识
威龙国际互联网科技公司
江苏互联网智能科技软件
2021世界互联网领先科技成果发布
山东蛋芒互联网科技有限公司
互联网科技网
互联网 的科技创新
新浪科技互联网
中正互联网科技招聘
华脉科技工业互联网产品
互联网科技公司招聘
智腾互联网科技有限公司
消费医药和互联网科技
科技互联网行业投资研究
互联网科技品牌