【c# 学习笔记】c#委托是什么
法庭上律师为当事人辩护,他真正执行的是当事人的陈词,律师就相当于一个委托对象,而当事人则委托律师对象为自己辩护。
c#中的委托概念也就好比律师对象,它是一个类(“委托是类类型”这个事实将在“委托本质”部分进行详细介绍),因为只有类才有对象的概念,这也体现了c#作为一门面向对象语言的特性。
c#中的委托可以理解为函数的一个包装,它使得c#中的函数可以作为参数来被传递,这在作用上相当于c++中的函数指针。c++用函数指针获取函数的入口地址,然后通过这个指针来实现对函数的操作。
委托的定义和方法的定义类似,只是在定义的前面多了一个delegate关键字。如下定义:
public delegate void MyDelegate(int para1, string para2);
委托能包装的方法是有一定限制的,例如能被前面的委托类型MyDelegate包装的方法需要满足以下条件:
1.方法的返回类型必须为void;
2.方法必须有两个参数,并且第一个参数应为int类型,第二个参数为string类型。
总结:可以被委托包装的方法必须满足以下规则:
1.方法的签名必须与委托一致,方法签名包括参数的个数、类型和顺序;
2.方法的返回类型要和委托一致,注意,方法的返回类型不属于方法签名的一部分。

【c# 学习笔记】c#委托是什么的更多相关文章
- 《C# 语言学习笔记》——委托
委托是一种可以把引用存储为函数的类型. 委托的声明非常类似于函数,但不带函数体,且要使用delegate关键字.委托的声明制定了一个返回类型和一个参数列表. 在定义了委托后,就可以声明该委托类型的变量 ...
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.
前言: C#委托是什么 c#中的委托可以理解为函数的一个包装, 它使得C#中的函数可以作为参数来被传递, 这在作用上相当于C++中的函数指针. C++用函数指针获取函数的入口地址, 然后通过这个指针 ...
- [C#学习笔记]Func委托与Action委托
学习一项新知识的时候,最好的方法就是去实践它. 前言 <CLR via C#>这本神书真的是太有意思了!好的我的前言就是这个. Fun 如果要用有输入参数,有返回值的委托,那么Func委托 ...
- js学习笔记-事件委托
通过事件委托,你可以把事件处理器绑定到父元素上,避免了把事件处理器添加到多个子级元素上.从而优化性能. 事件代理用到了事件冒泡和目标元素.而任何一个元素的目标元素都是一开始的那个元素. 这里首先要注意 ...
- 【c# 学习笔记】委托链的使用
委托链其实就是委托类型,只是委托链把多个委托链接在一起而已,也就是说,我们把链接了多个方法的委托称为委托链或多路广播委托.如下: public delegate void DelegateTest() ...
- 【c# 学习笔记】委托的使用
//委托使用的演示 class Program { //1.使用delegate关键字来定义一个委托类型 public delegate void MyDelegate(int para1, int ...
- c#学习笔记之委托
委托 最近自己在调试C#项目,发现经常可以看到委托和lambda表达式,各种花里胡哨的写法把我给整的云里雾里的,于是自己特意花了一点功夫来整理关于delegate的相关知识,方便自己日后查阅. 何为委 ...
- c#学习笔记03——委托和事件
委托:一种引用类型,这种类型可以用来定义方法签名,从而使用委托实现将方法作为参数传递给其他方法.类似于C++中的函数之争,使用委托使程序员可以将方法引用封装在委托对象内. 定义和声明委托: deleg ...
- 委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式
引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录 ...
- C#委托与事件学习笔记
委托事件学习笔记 本文是学习委托和事件的笔记,水平有限,如有错漏之处,还望大神不吝赐教. 什么是委托?从字面意思来解释,就是把一个动作交给别人去执行.在实际开发中最常用的就是使一个方法可以当做一个参数 ...
随机推荐
- .net core 加载项目提示项目文件不完整,dotnet提示不是内部或外部命令
记录一下 在系统环境变量中PATH添加如下: C:\Windows;C:\Windows\System32\System32\Wbem;C:\Windows\System32;
- Mvc中模拟模型
如题,每次研究前台技术都要建数据库.连接,还遇到VS各种版本问题,太麻烦. 写这么一个东西,模仿后台Model,上课的时候研究代码层面的内容.甚好. 数据库类: class myDatabase { ...
- asp.net core 在centeros 7.x下创建服务
Netcore服务生成说明 如有个项目/opt/wwwroot/dpms.1633.com 启动为/usr/bin/dotnet /opt/wwwroot/dpms.1633.com/DPMS.Web ...
- tengine 基于权重负载均衡的简单配置
环境如下: 资源服务器_1:192.168.10.10 centos 7 tengine 2.3.0 资源服务器_2:192.168.10.129 centos 7 tengine 2.3. ...
- powershell ssh-agent 无法工作
windows 10的powershell已经支持open-ssh的功能. 但是运行get-service ssh-agent似乎显示的stopped. 如下: PS C:\WINDOWS\syste ...
- uni-app通过判断接口403跳转登录页面的问题
需求: 当向后端请求接口返回 403 的时候,直接跳到登录页面让用户登录 实现方案: 在请求结束后拦截器中判断,如果是 403 就跳转 遇到难题: 一级页面(我的) onShow() 中有接口请求,用 ...
- Jenkins+GitLab+Docker+SpringCloud实现可持续自动化微服务
本文很长很长,但是句句干货,点赞关注收藏后有惊喜在文末等你 现有混合云平台的场景下,即有线下和线上的环境,又有测试与正式的场景,而且结合了Docker,导致打包内容有所区分,且服务的发布流程复杂起来, ...
- leetcode之有效的括号(20)
题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符 ...
- rac启动维护笔记
Ohasd.bin将产生4个代理启动相关的资源 (1) oraagent:负责ora.asm.ora.evmd.ora.gipcd.ora.gpnpd.ora.mdnsd的启动和管理 (2) ...
- mac运行模拟器simulator突然很慢
一直都正常,突然变慢,而且慢的离谱. 上网查了下,这里记录下,或许问题不仅限于此. simulator->Debug->Slow Animations. 这个Slow Animations ...