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安全错误
数据库的锁怎样保障安全
互联网黑科技
中国互联网科技工作委员会毛军
互联网科技公司华为
互联网 科技公司
互联网络科技有限公司
郑州华宇互联网科技
互联网科技类展会
哈尔滨新华互联网科技
随着互联网科技发展
成都互联网科技公司100强
团飞科技与伯堂互联网服务平台
移动互联网科技股
互联网科技创新服务
科技互联网大厂
昊天互联网科技有限公司
中国互联网十大科技股排名
国大互联网教育科技有限公司薪资
中天科技中国工业互联网
2021世界互联网领先科技成果发布
北京瑞云互联网科技有限公司
新华互联网科技学院
互联网科技金融公司
唐信互联网科技
小米互联网科技园设置
华夏恒生互联网科技013171
高科技互联网套路
四川互联网展示科技馆设计
互联网界的黑科技
好易买互联网科技
众联互联网络科技