C#委托的基础概念和特点
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"C#委托的基础概念和特点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#委托的基础概念和特点"吧!委托具有以下特点:委托类似于 C++
千家信息网最后更新 2025年11月07日C#委托的基础概念和特点
本篇内容主要讲解"C#委托的基础概念和特点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#委托的基础概念和特点"吧!
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
在C#中使用委托分为三步:
1.定义委托:
//声明委托 public delegate void MyDel();
2.实例化委托:
TestDel t = new TestDel(); Console.WriteLine("-----以下是简单使用委托演示--------"); //t.MyMethod(); ///实例化委托,用一个方法来进行实例化 ///该方法签名要与委托签名一致 MyDel del = new MyDel(t.MyMethod);3.调用委托:
///调用委托 del();
好了,其实委托的变化很复杂,但基本都会符合这么三个步骤,说过了,这些,再来看一下完整的代码:
namespace DelegateDemo{ //声明委托 public delegate void MyDel(); //声明带参的委托 public delegate void MyDel2(int num1, int num2); //声明带有返值的委托 public delegate string MyDel3(string s); //声明委托用于演示匿名方法 public delegate string ProcessString(string s); class Program { static void Main(string[] args) { #region 委托演示 /* TestDel t = new TestDel(); #region 简单实例化委托与调用委托 Console.WriteLine("-----以下是简单使用委托演示--------"); //t.MyMethod(); ///实例化委托,用一个方法来进行实例化 ///该方法签名要与委托签名一致 MyDel del = new MyDel(t.MyMethod); ///调用委托 del(); //C#2.0后可以这种方式实例化委托 MyDel del4 = t.MyMethod; del4(); //用静态方法进行实例化 del4 = TestDel.MyStaticMethod; del4(); //以下代码效果相同 //MyDel2 del2 = new MyDel2(t.MyMethod); //del2(10, 20); MyDel2 del2 = t.MyMethod; del2(10, 20); //MyDel3 del3 = new MyDel3(t.MyMethod); //Console.WriteLine(del3("abc")); #endregion #region 匿名方法实例化委托 Console.WriteLine("-----以下是匿名方法演示--------"); //用匿名方法实例化委托 ProcessString p = delegate(string inputString) { return inputString.ToUpper(); }; //通过委托调用匿名方法 Console.WriteLine(p("aaaa")); #endregion #region 委托多播演示 Console.WriteLine("-----以下是委托多播演示--------"); MyDel mydel1 = t.MyMethod; MyDel mydel2 = t.MyMethod2; MyDel mydel3 = TestDel.MyMethod3; MyDel allMyDel = mydel1 + mydel2 + mydel3; allMyDel(); allMyDel -= mydel3; allMyDel(); #endregion #region 委托作为参数演示 Console.WriteLine("-------以下是委托作为参数演示------"); MyDel3 paramMyDel3 = t.MyMethod; TestDel.MyParamMethod("aaa", paramMyDel3); #endregion #region 委托作为返回值 Console.WriteLine("---以下是委托作为返回值演示------"); ///returnMyDel指向t.MyReturnMethod()的返回值 MyDel3 returnMyDel = t.MyReturnMethod(); ///returnMyDel指向t.MyMethod //MyDel3 returnMyDel = t.MyMethod; Console.WriteLine(returnMyDel("sssssssssssss")); #endregion */ #endregion //MyReturnDelegateTest my = new MyReturnDelegateTest(); //my.MyTest(); MyParamDelegateTest myParam = new MyParamDelegateTest(); myParam.AddBooks(); myParam.MyTest(); } } public class TestDel { #region 普通方法 public static void MyStaticMethod() { Console.WriteLine("My Static Method"); } public void MyMethod() { Console.WriteLine("MyMethod"); } public void MyMethod2() { Console.WriteLine("My Method 22222222222"); } public static void MyMethod3() { Console.WriteLine("My Method 3333333333333"); } public void MyMethod(int num1, int num2) { Console.WriteLine(num1+num2); } public string MyMethod(string s) { return s.ToUpper(); } #endregion /// /// 委托作为方法参数 /// /// /// public static void MyParamMethod(string s, MyDel3 del3) { Console.WriteLine(del3(s)); } /// /// 委托作为返回值 /// /// /// public MyDel3 MyReturnMethod() { ///返回符合委托规范的方法 return MyMethod; } }通过例子,我们可以知道,使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用"调用"这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。
到此,相信大家对"C#委托的基础概念和特点"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
委托
方法
实例
演示
C#
参数
概念
特点
基础
代码
变量
一致
内容
多个
指向
更多
学习
复杂
实用
普通
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
移动网络安全威胁有哪些
交易安全技术和网络安全技术区别
广电网络技术培训有哪些
黄河服务器股价
可以自考计算机网络技术专业吗
网络安全 创意大赛
大专软件开发课程有哪些
应用软件开发成本预算表
服务器拓展网卡怎么安装
重庆手机软件开发
r440服务器关机电源灯闪
幼儿园网络安全手指游戏
我的世界小号服务器显示大号
杂质制备数据库
网络安全教育ppt图片
电视无法连接服务器图片
网吧服务器软件
永安数据库修复
计算机软件开发分包
数据库并发测试工具
西安高考软件开发
农村宅基地数据库成果
贵州云服务器存储云主机
如何联系软件开发工作室
中学生网络安全说课稿
内部网站如何弄数据库
l电力监控网络安全检测装置
小学一年级网络安全教育记录
用云服务器搭建私服方舟
丹东市网络安全应急指挥中心