C# 中委托的演变

C#委托的前世今生 我们所以常写的那行代码,其实只是一种简写方式而已,委托的五步法,不管怎么简化,怎么优化,其实本质还是一样,都离开不了这五个步骤。这就是经典。 阅读详情

C# 中委托的演变

 C# 1.0 中,通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。 

C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。

 C# 3.0 引入了 lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。 这两个功能统称为匿名函数。 通常,面向 .NET Framework 3.5 及更高版本的应用程序应使用 lambda 表达式。

下面的示例演示从 C# 1.0 到 C# 3.0 委托创建过程的发展:

C#复制

class Test
{
    delegate void TestDelegate(string s);
    static void M(string s)
    {
        Console.WriteLine(s);
    }

    static void Main(string[] args)
    {
        // Original delegate syntax required 
        // initialization with a named method.
        TestDelegate testDelA = new TestDelegate(M);

        // C# 2.0: A delegate can be initialized with
        // inline code, called an "anonymous method." This
        // method takes a string as an input parameter.
        TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };

        // C# 3.0. A delegate can be initialized with
        // a lambda expression. The lambda also takes a string
        // as an input parameter (x). The type of x is inferred by the compiler.
        TestDelegate testDelC = (x) => { Console.WriteLine(x); };

        // Invoke the delegates.
        testDelA("Hello. My name is M and I write lines.");
        testDelB("That's nothing. I'm anonymous and ");
        testDelC("I'm a famous author.");

        // Keep console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
/* Output:
    Hello. My name is M and I write lines.
    That's nothing. I'm anonymous and
    I'm a famous author.
    Press any key to exit.
 */
STM32F407标准库下ADC多通道DMA采集的配置与优化 本文详细介绍了STM32F407标准库下ADC多通道DMA采集的配置与优化方法。通过GPIO模拟输入配置、ADC时钟和模式设置、DMA传输参数配置等关键步骤,实现高效的多通道数据采集。文章还提供了性能优化技巧和常见问题排查指南,帮助开发者提升采样速率和稳定性。 阅读详情

相关推荐

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

m0_68167062的博客 2261

C#中的委托,匿名方法、泛型委托和Lambda表达式表达式演变过程

我为了更好的理解C#中的委托,、泛型委托、匿名方法和Lambda表达式,我把它们的演变过程通过自己的理写了出来,各位高手要是看到有什么不妥的地方,还望指出。 首先,我从一个C语言中很简单的一个问题开始,比较两个数的大小,并将最大的数以string 型输出 首先来看比较常规的写

hui674629058的专栏 654

揭秘无人机前沿领域的科技新突破

本文旨在系统性地介绍无人机技术在前沿领域的最新突破,涵盖从基础理论到实际应用的各个方面。我们将重点关注那些正在改变无人机行业面貌的关键技术创新,并分析它们对未来发展的影响。文章首先介绍无人机技术的基础概念和背景,然后深入探讨六个关键领域的技术突破,接着分析实际应用案例,最后展望未来发展趋势。自主导航系统(SLAM):同时定位与地图构建技术,使无人机能在未知环境中自主导航计算机视觉(CV):使无人机能够"看"和理解周围环境的技术5G通信:第五代移动通信技术,提供高速、低延迟的数据传输能源管理。

AI天才研究院 1490

C#委托和事件的前世今生

首先声明本来想自己写C#委托和事件的,但是在查找资料时发现百度百科里面给出的解释不错,不过整篇文章读下来总感觉有点混乱,看前半部分还可以,看后半部分时就有点云里雾里了,为了能给广大的向我一样的初学者提供一个更加浅显易懂的委托和事件,同时也为了方便自己以后查看,现将百度百科里面精髓的部分提炼出来,同时也添加了自己的对委托和事件的理解,有不足之处,请大家多多指点!

松一160 2265

攻克JESD204B多ADC同步:从时钟对齐到数据对齐的实战解析

本文深入解析了JESD204B多ADC同步的系统性挑战与实战解决方案。从确保设备时钟同源、精确捕获SYSREF信号,到管理接收端弹性缓冲区与释放点,文章提供了从时钟对齐到数据对齐的完整调试路径与排查清单,是攻克高速数据采集系统中多片ADC同步难题的实用指南。

weixin_29231725的博客 197

IMU标定中的Allen方差

Allen方差 Allen方差是IMU标定任务中的常用工具。IMU标定可以分为确定性误差和随机误差,确定性误差包括:scale、bias、misalignment。随机误差则主要是高斯白噪声和bias随机游走。Allen方差主要用于标定随机误差。 Allen方差获取 Allen方差的计算方法如下: 保持IMU静止, 采集N个数据点。 将N个点定长分组,常用的交叠式Allen方差如下(n=3): 对于每个子集,计算均值后,计算相邻两组的方差,得到的时间-方差曲线即为Allen方差。 Alle

realjc的博客 5734

从‘滤镜’到‘分割’:拆解DIAL-Filters如何用280K参数让模型‘看清’黑夜

本文深入解析了DIAL-Filters如何通过仅280K参数的轻量级设计,在夜间驾驶场景中实现高效的语义分割(Semantic Segmentation)。该技术通过图像自适应处理模块(IAPM)和可学习引导滤波(LGF)的协同,显著提升模型在极端光照条件下的性能,同时保持低计算开销,适用于边缘设备部署。

weixin_33736832的博客 460

DLMS—Cryptographic algorithms—(Green-Book)加密算法

密码学是数学的一个分支,基于数据的转换,并且可以用来提供多种安全服务:保密性、数据完整性、认证、授权和不可否认性。密码学依赖于两个基本组成部分:算法(或密码学方法)和密钥。算法是一个数学函数,而密钥是在转换过程中使用的参数。密码算法和密钥用于对数据应用密码保护(例如,加密数据或生成数字签名),以及移除或检查保护(例如,解密加密的数据或验证数字签名)。密码哈希函数:这类函数不需要密钥(尽管它们可以以使用密钥的模式使用)。哈希函数通常用作算法的一个组成部分,以提供安全服务。见9.2.3.2节。对称密钥算法。

一个bug是bug,多个bug能work 1710

深入理解C#委托及原理

一、委托 设想,如果我们写了一个厨师做菜方法用来做菜,里面有 拿菜、切菜、配菜、炒菜 四个环节,但编写此方法代码的人想让 配菜 这个环节让调用方法的人实现,换句话说,就是想在方法被调用时接收 代码 作为参数,在方法中执行这端传进来的代码。 但,怎么为一个方法传 代码 进来呢?当然大家想到了传递接口方式来实现,咱先不讨论接口,因为微软为我们提供了一个叫做 【委托】 的类型。

ruijc的专栏 1万+

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

深入理解DQN中的Q值:核心概念和应用

在强化学习中,Q值(或称为动作价值函数)是核心概念之一。Q值函数 ( Q(s, a) ) 表示在给定状态 ( s ) 下,采取动作 ( a ) 并遵循某策略后,智能体从当前状态到未来状态所能获得的预期总回报。简言之,Q值是评估特定状态和动作对的好坏的指标。

qlkaicx的博客 2975

C#中委托演变的的三个阶段

命名函数 匿名方法 lambda表达式 委托是一种可以把引用存储为函数的类型,定义了委托后,就可以声明该委托类型的变量,接着把这个变量初始化为与委托有相同返回类型和参数列表的函数引用,之后就可以使用委托变量调用这个函数,就像是该变量是一个函数一样,有了引用函数的变量后,还可以执行不能用其他方式完成的操作,例如可以把委托变量作为参数传递给一个函数,这样该函数就可以使用委托调用...

168

电阻抗成像肺功能测试数据分析与直方图生成

本文介绍了基于MATLAB的电阻抗成像(EIT)肺功能测试数据分析方法。研究针对32×32像素的EIT图像序列,通过三步算法处理:首先计算特定时间点与谷值图像的差值,然后分析1秒后峰值与1秒值的差值,最终计算比值矩阵并处理异常值。系统展示了数据预处理、关键时间点检测、比值计算及统计分析的全流程,包括生成概率分布直方图和空间分布图等可视化方法。该分析为无创肺功能评估提供量化指标,可应用于临床呼吸监测和疾病诊断。

huanghm88的专栏 197

C#中委托的演变

 

cd.NET@Microsoft.NET 631

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

转: C#中的委托,匿名方法、泛型委托和Lambda表达式表达式演变过程

我为了更好的理解C#中的委托,、泛型委托、匿名方法和Lambda表达式,我把它们的演变过程通过自己的理写了出来,各位高手要是看到有什么不妥的地方,还望指出。 首先,我从一个C语言中很简单的一个问题开始,比较两个数的大小,并将最大的数以string 型输出 首先来看比较常规的写法: public delegate string DelegateCompare(int Num1,int Num2

hutong00的专栏 428

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

简介C#中委托演变的的三个阶段

命名函数匿名方法lambda表达式 委托是一种可以把引用存储为函数的类型,定义了委托后,就可以声明该委托类型的变量,接着把这个变量初始化为与委托有相同返回类型和参数列表的函数引用,之后就可以使用委托变量调用这个函数,就像是该变量是一个函数一样,有了引用函数的变量后,还可以执行不能用其他方式完成的操作,例如可以把委托变量作为参数传递给一个函数,这样该函数就可以使用委托调用它引用的任何函数,而且在运

子弹头zdt的专栏 551

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

c#委托 匿名方法和lamada表达式演变过程代码演示

在上面的示例中,我们展示了C#中委托、匿名方法和Lambda表达式的演变过程。这些示例演示了如何使用不同版本中的语法来实现相同的功能,以展示这些概念的演变过程。

qq_41942413的博客 674

转C# 委托演变

  http://www.cnblogs.com/JeffreyZhao/archive/2009/08/07/1540866.html NET 3.5中委托的写法(Lambda表达式) Lambda表达式在C#中的写法是“arg-list => expr-body”,“=>”符号左边为表达式的参数列表,右边则是表达式体(body)。参数列表可以包含0到多个参数,参数之间使用逗...

weixin_33832340的博客 88

C#内置的几种委托详解,lambda表达式的演变

系统内置的委托              使用委托:方法的签名要和委托一致。     1.System.Func 代表有返回类型的委托               |--public delegate TResult Func();               |--public delegate TResult Func(T tag);       注:输入泛型参数-in最多16个,输

生面别开 1466

C#委托,匿名函数,lambda的演变

委托关键词:delegate 委托是把一个方法当成参数进行传递。 先声明一个委托:两个参数,返回bool类型 delegate bool Mydelegate(object obj1,object obj2); 委托所对应的方法: static bool CompareNums(object obj1,object obj2) { ...

weixin_30399055的博客 113

c#编码技巧(十七):全面总结delegate、Func委托的写法演变

在实际编程中,很多情况需要把函数指针作为参数传入,因为具体函数的实现往往是变化的,但函数入口是不变(这里的函数入口指的是入参与返回值组成的函数形式)其实delegate/Func/Action并不少见,尤其是C#底层代码,几乎随处可见。它的本质也是一个函数指针,它可以实现函数/方法作为参数传入另一个函数方法体。甚至Func/Action的出现都是为了简化delegate的写法。delegate有多种写法,只不过是一个比一个简化而已。举个常见例子,linq中就大量用到Func。

foolishsunday的博客 642

全面解析:C# 委托的实质性应用与优势

有人问C#的委托(Delegate)有什么实质性用途?委托在C#其实是无处不在,那么它具体用在那里呢?。本文将从委托(Delegate)定义和演变讲起,让大家一目了然。C#的委托(Delegate)是强类型的函数指针,用于引用方法并允许将方法作为参数传递。随着C#的演变,委托的功能和用途变得越来越强大和灵活。本文将从C#委托的演变谈起,详细介绍其实质性用途,并通过代码实例加以证明。委托的演变C# 1.0: 基本委托在C# 1.0中,引入了基本的委托概念,使得方法可以作为对象传递。

2401_82584055的博客 1478

C#中委托

文章目录一、C#委托二、隐式类型与匿名类型三、C#扩展方法与yield关键字四、Lambda表达式 一、C#委托 举例1: 创建控制台应用程序 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TheOne { //声明委托 public delegate string Translatio

weixin_46596213的博客 4437

C# 委托的发展,变化

委托的发展变化是随着C#版本的变化发展而发展的,委托在Windows程序设计中的重要使用,理解了委托才算是C#入门。本篇文章主要介绍一下委托的发展。含义:委托是一种在对象里保存方法引用的类型,同时也是一种类型安全的函数指针。格式:类似方法的定义,但没有方法体,定义的委托名前要加上关键字delegate。作用域:可以...

weixin_30483495的博客 93
下一篇: c#中预置的委托Func和Action
Yan2017
博客等级 码龄10年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值