C#之委托
来源:互联网 发布:淘宝网店群 编辑:程序博客网 时间:2024/06/02 07:31
定义
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
本质
我们知道委托是一个引用类型,所以它具有引用类型所具有的通性。在C#中使用delegate关键字定义委托,然后使用我们熟悉的函数调用的语法来调用委托。当我们用delegate关键字声明委托时,编译器自动为我们生成类。类的名字即为委托变量名,访问类型为定义的委托访问类型。
如何使用
在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。using System;using System.Collections.Generic;using System.Text;namespace Delegate{//定义委托,它定义了可以代表的方法的类型public delegate void GreetingDelegate(string name);class Program{private static void EnglishGreeting(string name){Console.WriteLine("Morning, " + name);}private static void ChineseGreeting(string name){Console.WriteLine("早上好, " + name);}//注意此方法,它接受一个GreetingDelegate类型的参数,该参数是返回值为空,参数为string类型的方法private static void GreetPeople(string name, GreetingDelegate MakeGreeting){MakeGreeting(name);}static void Main(string[] args){GreetPeople("Jimmy ", EnglishGreeting);GreetPeople("张子阳", ChineseGreeting);Console.ReadKey();}}}
输出结果是Morning, Jimmy早上好, 张子阳
好处
1.相当于用方法作为另一方法参数(类似于C的函数指针)2.在两个不能直接调用的方法中作为桥梁,如:在多线程中的跨线程的方法调用就得用委托
2 0
- C#小结之委托
- C#之委托
- C#之委托
- C# 之 委托
- C# 篇之---委托
- C#委托之愚见
- C#之初始委托
- C#之委托学习
- C#之委托
- C#学习之委托
- C#5.0之委托
- C#之委托
- c#之事件委托
- C#之委托
- C#之委托
- C#学习之委托
- C#之委托
- C#学习之----委托
- shell脚本-实现网站自动登录
- li中包含div内容越界问题
- ALAssetsLibrary 读取所有照片
- synchronized的实现用了自旋锁还是互斥锁?
- TabLayout + ViewPager + Fragment 实现布局
- C#之委托
- 知乎抓图python脚本
- iOS UITextField 只能输入数字和小数点,只能有两位小数
- Crontab的格式
- C/C++ 宏定义中#与##区别
- android图片素材参考
- 详解Android动画之 属性动画(Property Animation) 完全解析 (上)
- 1-渗透测试技术基础
- Openstack:Nova中“从云硬盘启动”、“从镜像启动”、“从镜像启动(创建一个卷)”_prep_block_device中的差异