C#委托总结-入门篇
1,概念:委托类型表示对具有特定参数列表和返回类型的方法的引用。 通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。
委托是引用类型,可以把它看作是用来存方法的一种类型。比如说类型string用来定义存取字符串的变量,那么委托类型delegate就可以用来定义存方法的变量。委托和类一样,是一种用户自定义类型。但类表示的是数据和方法的集合,而委托表示的是一个或多个方法的集合。你可以把delegate看作一个包含有序方法列表的对象,这些方法具有相同的签名和返回类型

2,声明委托类型

委托类型不需要在类内部声明,因为它是类型声明
3,委托对象的创建和赋值
delegate void MyDel(string value);
class Program
{
void Print1(string value)
{
Console.WriteLine("方法1:{0}", value);
}
void Print2(string value)
{
Console.WriteLine("方法2:{0}", value);
}
void Print3(string value)
{
Console.WriteLine("方法3:{0}", value);
}
/// <summary>
/// 执行委托方法
/// </summary>
/// <param name="d">委托类型参数</param>
/// <param name="value">委托内方法的参数</param>
void PrintFun(MyDel d, string value)
{
d(value);
}
static void Main(string[] args)
{
Program p = new Program();
MyDel del1, del2, del3;//声明委托变量 //赋值
del1 = p.Print1;
del2 = p.Print2; //组合委托
del3 = del1 + del2; //给委托赋新值
del1 = p.Print2; //给委托添加方法
del1 += p.Print3; //从委托移除方法
del1 -= p.Print2; p.PrintFun(del1, "已运行");//调用 Console.WriteLine("\n运行组合委托");
p.PrintFun(del3, "已运行");
Console.ReadKey();
}
}
C#委托总结-入门篇的更多相关文章
- 新注册第一帖----------------------乱码新手自学.net 之Linq 入门篇
		作为一个业余开发,断断续续学.net/c#也有不少日子了, 学习过程中,不断忘了学,学了忘,这让我很苦恼. 以前学习过程中,我总是在笔记本中记录下来知识要点,这么久下来,笔记本都写了四五本了. 然而, ... 
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明
		导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ... 
- 「入门篇」初识JVM
		记录于 2022-01-02 17:25:12 GhostFace 1. 什么是JVM? 概念 来自百度百科 JVM是 Java Virtual Machine(Java虚拟机)的缩写,JVM是一 ... 
- Membership三步曲之入门篇 - Membership基础示例
		Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ... 
- spring boot(一):入门篇
		构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ... 
- 1. web前端开发分享-css,js入门篇
		关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ... 
- 一个App完成入门篇(七)- 完成发现页面
		第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ... 
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
		本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ... 
- 转:OSGi 入门篇:模块层
		OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文 ... 
随机推荐
- asp.net后台解析JSON,并将值赋给对象
			示例代码如下: using System; using System.Collections.Generic; using System.Web.Script.Serialization; publi ... 
- 【校招面试 之 网络】第1题 TCP和UDP
			TCP UDP1.TCP与UDP基本区别 (1)基于连接与无连接 (2)TCP要求系统资源较多,UDP较少: (3)UDP程序结构较简单(头只有8个字节:源端口号.目标端口号.长度.差错) ... 
- 有关于mfc webbrowser插件的使用
			最近写的东西中常常需要嵌入一些浏览器,微软提供了一个比较好的接口,可以在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比较的方便,这里我就简单记录下这个插件的 ... 
- silverlight的Datagrid控件列绑定属性笔记
			<data:DataGridTemplateColumn Header="给作者留言"> <data:DataGridTemplateColumn.CellTem ... 
- DataTable的序列化和反序列化
			/// <summary> /// DataTable序列化 /// </summary> /// <param name="dt"></ ... 
- 关于前一篇innodb自增列自己的一点补充
			上篇文章是我转载的,忘记注明了出处,在这里深感歉意.但是上篇文章中关于自增列预留ID的计算我当时怎么弄明白,后来自己想了想终于想通了,在这里详细解释一下. 我们以一次性插入10行为例,表格如下: 插 ... 
- Windows10电脑安装macOS Mojave系统的方法(最新版系统,含超详细步骤截图)
			一.环境及准备工作 1.主机系统:本人系统是Windows10家庭中文版 2.虚拟机软件:VMware Workstation 14 Pro 虚拟机版本号:14.1.1 build-7528167 虚 ... 
- 使用phpExcel导出excel文件
			function export($log_list_export) { require "../include/phpexcel/PHPExcel.php"; require &q ... 
- Netty 源码 NioEventLoop(一)初始化
			Netty 源码 NioEventLoop(一)初始化 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) Netty 基于事件 ... 
- 社交类APP原型模板分享——微信
			微信是一款社交类的APP应用——聊天软件,支持多人群聊. 交互效果主要有滚动内容界面.选择组件触发按钮状态变化.点击下拉展开列表.点击弹出面板等交互操作. 本原型由国产原型工具-Mockplus制作完 ... 
