C#泛型委托是什么

技术C#泛型委托是什么本篇内容主要讲解“C#泛型委托是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#泛型委托是什么”吧!C# 泛型委托学习之前首先来看看什么是C# 委

本文主要解释“什么是C#泛型委托?”感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖学习“什么是C#泛型委托”!

在学习C#泛型委托之前,我们先来看看什么是C#委托,它是一种引用方法。一旦将方法分配给委托,C#委托将具有与方法完全相同的行为。委托的使用可以像任何其他方法一样具有参数和返回值,如下例所示:任何与委托签名匹配的方法(由返回类型和参数组成)都可以分配给委托。通过这种方式,可以以编程方式更改方法调用,并且可以将新代码插入现有的类中。只要知道委托的签名,就可以分配自己的委托方法。

C# 泛型委托代码

publidelegateintperformcalculation(intx,inty);将方法作为参数引用的能力使委托成为定义回调方法的理想选择。例如,您可以将对比较两个对象的方法的引用传递给排序算法。比较代码使得以更通用的方式编写算法成为可能。

C# 委托具有以下特点:

C#委托类似于C函数指针,但是是类型安全的。

C#委托允许方法作为参数传递。

C#委托可以用来定义回调方法。

C#委托可以链接在一起;例如,您可以对一个事件调用多个方法。

该方法不需要与代理签名完全匹配。

2.0版本引入了匿名方法的概念,允许代码块作为参数传递,而不是单独定义的方法。

C#泛型委托的理解与应用;

C#委托可以定义自己的类型参数。引用泛型委托的代码可以指定类型参数来创建封闭构造的类型,就像实例化泛型类或调用泛型方法一样,如下例所示:

C# 泛型委托代码

public delegatevoiddel \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\publicationstatinvitnotify(inti){ } Delintm1=new Delint (Notify);C #的2.0版本有一个名为方法组转换的新函数,它适用于具体的和一般的委托类型,并使您能够使用以下简化语法编写上一行:

C# 泛型委托代码

delintm2=Notify;泛型类中定义的委托可以像类方法一样使用泛型类类型参数。

C# 泛型委托代码

class stackT { T[]项;intindexpublic delegatevoidstackdelegate(T[]项);}引用委托的代码必须指定包含该类的类型变量,如下所示:

C# 泛型委托代码

privatedstationvoidowork(float[]items){ } publicatedstationteststack(){ Stackfloats=newStackfloat();堆栈浮动。StackDelegated=DoWork}当根据典型的设计模式定义事件时,泛型委托特别有用,因为发送方参数可以是强类型的,不再需要强制转换为Object或强制转换回Object。

C# 泛型委托代码

delegatevoitstackeventhandlerT,U (Tsender,UeventArgs);class stack T \\{ public class stack keventarg s 3360 system。EventArgs { } publicateventstackevenhandler \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\protected virtualvotinonstackchanged(StackEventArgsa){ stackEvent(this,a);} } class sampleclass { publicavithandlestackchangeT(StackTStack,StackT。Stack keventargsargs){ } } publistativittest(){ Stack \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\sample class o=newsample class();s . stack vent=o . handlestack change;}至此,相信大家对“什么是C#泛型委托”有了更深的理解,让我们在实践中去做吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/130833.html

(0)

相关推荐

  • 如何进行web.py数据库入门

    技术如何进行web.py数据库入门如何进行web.py数据库入门,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。web.py是一个非常精巧的web框架,不

    攻略 2021年12月4日
  • Oracle中出现ORA-00600内部错误代码怎么办

    技术Oracle中出现ORA-00600内部错误代码怎么办这篇文章将为大家详细讲解有关Oracle中出现ORA-00600内部错误代码怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获

    攻略 2021年11月17日
  • 如何检查nodejs是否安装成功

    技术如何检查nodejs是否安装成功这篇文章主要为大家展示了“如何检查nodejs是否安装成功”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何检查nodejs是否安装成功”

    攻略 2021年11月7日
  • MySQL多版本并发控制机制源码分析

    技术MySQL多版本并发控制机制源码分析本篇内容主要讲解“MySQL多版本并发控制机制源码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL多版本并发控制机制源码分

    攻略 2021年12月3日
  • JVM内存查看的三种途径分别是什么

    技术JVM内存查看的三种途径分别是什么本篇文章给大家分享的是有关JVM内存查看的三种途径分别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。通常情况下可

    攻略 2021年10月23日
  • 如何解决Sqlserver 2014 alwayson架构主节点执行alter table导致从节点的阻塞问题

    技术如何解决Sqlserver 2014 alwayson架构主节点执行alter table导致从节点的阻塞问题如何解决Sqlserver 2014 alwayson架构主节点执行alter table导致从节点的阻塞

    攻略 2021年11月29日