当前位置: 首页 > news >正文

C#入门学习笔记 #8(委托)

欢迎进入这篇文章,文章内容为学习C#过程中做的笔记,可能有些内容的逻辑衔接不是很连贯,但还是决定分享出来,由衷的希望可以帮助到你。

笔记内容会持续更新~~

本章介绍C#中的委托,本章难度较大...

委托

C#中的委托是C语言、C++中函数指针的升级版。接下来介绍一个概念——一切皆地址。因为变量(数据)是以某个地址为起点的一段内存中所存储的值。函数(算法)是以某个地址为起点的一组机器语言指令。也就是说,无论是数据还是算法,都是保存在内存当中的,变量用来寻找数据的地址,函数用来寻找算法的地址。接下来先通过两个简单的例子来介绍下委托的简单使用。

Action委托

Func委托

这里Func的泛型有很多种,Add方法和Sub方法只有两个参数,所以选择带有两个参数的。尖括号里写的是目标方法的返回类型,当尖括号内有多个类型时,最后一个是返回类型,前面的才是参数类型。

Aciton委托和Func委托是微软为我们声明好的委托,接下来介绍如何自己声明委托。委托是一种类,类是数据类型所以委托也是一种数据类型。所以委托也可以用来声明变量、创建实例。下面来尝试自己声明委托。

声明委托

using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace ConsoleApp1
{public delegate double Cal(double x, double y);internal class Program{static void Main(string[] args){Calculator calculator = new Calculator();Cal cal1 = new Cal(calculator.Add);Cal cal2 = new Cal(calculator.Sub);Cal cal3 = new Cal(calculator.Mul);Cal cal4 = new Cal(calculator.Div);double a = 100;double b = 200;double c = 0;c = cal1.Invoke(a, b);Console.WriteLine(c);c = cal2.Invoke(a, b);Console.WriteLine(c);c = cal3.Invoke(a, b);Console.WriteLine(c);c = cal4.Invoke(a, b);Console.WriteLine(c
http://www.dtcms.com/a/232437.html

相关文章:

  • 中达瑞和SHIS高光谱相机在黑色水彩笔墨迹鉴定中的应用
  • GIT - 如何从某个分支的 commit创建一个新的分支?
  • Day45
  • PlayWright | 初识微软出品的 WEB 应用自动化测试框架
  • QT中使用libcurl库实现到ftp服务器的上传和下载
  • 大话软工笔记—分析模型
  • Elasticsearch:spring2.x集成elasticsearch8.x
  • 基于Java(SpringBoot、Mybatis、SpringMvc)+MySQL实现(Web)小二结账系统
  • 网络安全全景解析
  • 多层PCB技术解析:从材料选型到制造工艺的深度实践
  • 【联网玩具】EN 18031欧盟网络安全认证
  • 【Linux】 Linux 进程控制
  • 用 NGINX 构建高效 SMTP 代理`ngx_mail_smtp_module`
  • 数据库三范式设计---小白初学+案例引入
  • 数据分析实战2(Tableau)
  • SpringCloud-基于SpringAMQP实现消息队列
  • 矩阵分解相关知识点总结(二)
  • 使用 C/C++ 和 OpenCV 添加图片水印
  • 接IT方案编写(PPT/WORD)、业务架构设计、投标任务
  • DAY 21 常见的降维算法
  • OpenAI技术路线急转:从TypeScript到Rust的Codex CLI重构内幕
  • Spring WebFlux 整合AI大模型实现流式输出
  • Python-内置函数
  • MCP协议在LLM系统中的架构与实现原理研究
  • Cursor 集成 Figma MCP 实现阅读理解原型图生成方案
  • SQL Server相关的sql语句
  • PPT转图片拼贴工具 v2.0
  • 《EDA学习地图:从入门到进阶的通关秘籍》
  • [10-2]MPU6050简介 江协科技学习笔记(22个知识点)
  • Git的由来与应用详解:从Linux内核到现代开发的革命性工具