C#语言进阶(一)—委托 第一篇

总目录
C# 语法总目录

系列链接
C#语言进阶(一)    委托 第一篇
C#语言进阶(一)    委托 第二篇

委托 第一篇

    • 委托 第一篇
      • 1. 基本用法
      • 2.委托作为方法参数
      • 3.多播委托

委托 第一篇

  委托类似于CPP中的函数指针。它定义了一个方法类型,这个方法类型有返回类型和形参,不需要方法体,但是在声明这个方法类型时要添加delegate关键字

1. 基本用法

切换委托的方法指向,从而执行不同方法。

namespace TopSet
{internal class Program{//声明委托类型delegate int MethodTypeOfDelegate(int a, int b);static void Main(string[] args){//给委托类型赋值MethodTypeOfDelegate mt = Add;Console.WriteLine(mt(1,2));mt = Dec;Console.WriteLine(mt(2,1));Console.ReadLine();}static int Add(int a,int b){return a + b;}static int Dec(int a,int b){return a - b;}}
}--输出
3
1

2.委托作为方法参数

委托类型作为某个方法的参数传入

namespace TopSet01
{internal class Program{//声明委托类型delegate int MethodTypeOfDelegate(int a);static void Main(string[] args){int a = 5;//传入MultiValue(ref a, Add);Console.WriteLine(a);Console.ReadLine();}//委托类型作为参数static void MultiValue(ref int a,MethodTypeOfDelegate mt){a = mt(a);}static int Add(int a){return a * a;}}
}

3.多播委托

  多播委托就是把需要按照顺序执行的,相同类型的委托方法加到一起,执行的时候会按照顺序执行所有的委托方法。可以用于控制台和日志文件的输出。

下方案例仅供演示用法,具体问题需要灵活变通后使用。

namespace TopSet02
{public delegate void MethodTypeOfDelegate(int a);public class Util{public static void PrintSquence(int a,MethodTypeOfDelegate mt){mt(a);}}internal class Program{static void Main(string[] args){MethodTypeOfDelegate? mt = null;//加起来,按照加入的顺序执行mt += PrintSelf;mt += PrintMul;int a = 5;Util.PrintSquence(a, mt);Console.ReadLine();}static void PrintSelf(int a){Console.WriteLine(a);}static void PrintMul(int a){Console.WriteLine(a*a);}}
}--输出
5
25

总目录
C# 语法总目录

系列链接
C#语言进阶(一)    委托 第一篇
C#语言进阶(一)    委托 第二篇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户的流失预测分析

项目背景 随着电信行业的持续发展,运营商们开始更加关注如何扩大他们的客户群体。研究表明,获取新客户所需的成本要远高于保留现有客户的成本。因此,在激烈的竞争中,保留现有客户成为了一个巨大的挑战。在电信行业中,…

再拓信创版图-Smartbi 与东方国信数据库完成兼容适配认证

近日,思迈特商业智能与数据分析软件 [简称:Smartbi Insight] V11与北京东方国信科技股份有限公司 (以下简称东方国信)CirroData-OLAP分布式数据库V2.14.1完成兼容性测试。经双方严格测试,两款产品能够达到通用兼容性要…

TBWeb开发版V3.2.6免授权无后门Chatgpt系统源码下载及详细安装教程

TBWeb系统是基于 NineAI 二开的可商业化 TB Web 应用(免授权,无后门,非盗版,已整合前后端,支持快速部署)。相比稳定版,开发版进度更快一些。前端改进:对话页UI重构,参考C…

数据可视化(六):Pandas爬取NBA球队排名、爬取历年中国人口数据、爬取中国大学排名、爬取sina股票数据、绘制精美函数图像

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

面试(05)————Redis篇

目录 一、项目中哪些地方使用了redis 问题一:发生了缓存穿透该怎么解决? 方案一:缓存空数据 方案二:布隆过滤器 模拟面试 问题二: 发生了缓存击穿该怎么解决? 方案一:互斥锁 方案二&#xff…

Python数据可视化:频率统计条形图countplot()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 Python数据可视化: 频率统计条形图 countplot() [太阳]选择题 请问关于以下代码表述正确的选项是? import seaborn as sns import matplotlib.pyplot as plt data { …

断言(Assertion)在IT技术中的确切含义— 基于四类典型场景的分析

当“断言”(Assertion)一词成为IT术语时,语义的混沌性和二义性也随之而生。那么,何为断言?断言何为?实际上,只需分析四种典型场景,确切答案和准确描述就将自然显现。 在SAML&#xf…

上海计算机学会2020年7月月赛C++丙组T2感应门

题目描述 感应门会在有人经过的时候自动打开,冷却 d 秒后自动关闭。如果有人在感应门打开的状态下通过,那么冷却时间会重置,重新冷却 d 秒后再关闭。 在一段时间内,有 n 个人陆续通过了感应门,他们通过感应门的时间点…

Scikit-Learn

机器学习中的重要角色 Scikit-Leran(官网:https://scikit-learn.org/stable/),它是一个基于 Python 语言的机器学习算法库。Scikit-Learn 主要用 Python 语言开发,建立在 NumPy、Scipy 与 Matplotlib 之上,…

【python】使用python和selenium实现某平台自动化上传作品的全步骤

第一,我们需要下载python并安装 下载地址:https://www.python.org/downloads/release/python-3123/ 3.x版本的python自带pip工具,因此不需要额外下载。 ModuleNotFoundError: No module named seleniumpip用于下载python适用的各类模块&…

Proxy 代理

意图 为其它对象提供一种代理以控制这个对象的访问。 结构 Proxy保存一个引用使得代理可以访问实体;提供一个与Subject的接口相同的接口,使代理可以用来替代实体;控制实体的存取,并可能负责创建和删除它;其他功能依赖…

关于游戏IP的小讨论

大家好,我是阿赵。   我们平常玩的游戏,很多都是有知识产权(Intellectual Property,简称IP)的。比如游戏内容是某著名动漫、电视剧或者小说之类。阿赵我最近一年多以来,正在做一个日本著名动画IP的游戏。   这个日本动漫,在我…

用户体验至上:独立站脱颖而出的关键要素解析

在数字化时代,独立站成为了许多品牌和企业展示自身形象、推广产品、建立客户联系的重要平台。然而,要想在众多的独立站中脱颖而出,吸引并留住用户,良好的用户体验至关重要。本文Nox聚星将和大家探讨如何做好独立站的用户体验&…

【Linux深造日志】运维工程师必会Linux常见命令以及周边知识!

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位宝子们好啊!我是博主鸽芷咕。日志这个东西我相信大家都不陌生,在 linxu/Windows 系统…

【自定义类型详解】完结篇——联合体(共用体)与枚举详解

先赞后看已成习惯!!! 联合体 1. 联合体的定义 联合体又叫共用体,它是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。给联合体其中⼀个成员赋值,其他成员的值也会跟着变化。 联合体的结…

kaggle 房价预测 得分0.53492

流程 导入需要的包引入文件,查看内容数据处理调用模型准备训练输出结果 导入需要的包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.linear_model i…

独孤思维:集中火力赚钱,单点爆破

独孤的粉丝体量比较小,不如很多大咖。 所以,独孤给自己设定了一个规则: 即自己体量不够大的时候,这一段时间,只主推一个项目。 独孤之前同时推了好几个项目的时候。 好多粉丝过来问,独孤,你…

js生成word

js生成word 下载依赖 npm install html-docx-js引入 import htmlDocx from html-docx-js/dist/html-docx;代码 //参数 html 文件名字 下载完执行回调函数 function html2word (html,fileName,callback){const converted htmlDocx.asBlob(html);const link document.cre…

适合各大资源网投稿html源码

源码介绍 适合各大资源网投稿html源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 效果预览 源码下载 适合各大资源…

Linux gettid()系统调用源码分析

1、gettid()系统调用作用 gettid() 是一个Linux系统调用&#xff0c;用于获取当前进程的线程ID。在使用此系统调用时&#xff0c;你需要包含 <sys/syscall.h> 头文件&#xff0c;并且可以通过直接调用或使用 syscall() 函数来进行系统调用。 注意&#xff1a;ps 中显示的…