C#委托

news/2025/2/21 8:10:00/

C#委托

文章目录

    • C#委托
      • 委托定义
      • 委托实例化
      • Action与Func

委托是一种动态调用方法的类型,委托是对方法的抽象和封装。

函数指针。

调用委托时,委托包含的所有方法将被执行。

委托定义

delegate关键字

修饰符 delegate 返回值类型 委托名( 参数列表 );
public delegate int myDelegate(int x ,int y);

委托实例化

命名方法委托在实例化时必须带入方法的具体名称

委托名 委托对象名 = new 委托名( 方法名 );

调用委托

委托对象名( 参数列表 );
using System;class Program {public delegate int AddDelegate(int x,int y);static void Main(string[] args){AddDelegate addDelegate = new AddDelegate((new Test()).Add2num);Console.WriteLine(addDelegate(1,2));}
}class Test{public int Add2num(int x,int y){return x+y;}
}

定义委托,形参要有名称

Action与Func

Action和Func是系统预定义的委托。

Action是无返回值的泛型委托,Action有两种形式:

  • 没有返回值也不可以带参数 Action
  • 没有返回值,但是可以带参数Action<>, 参数限制0~16个

Func是有返回值泛型委托, Func有两种形式

  • 有返回值,无参数

    Func<返回值类型> 必须有返回值

  • 有返回值,有参数

    Func<参数1,参数2,返回值类型> 必须有返回值和参数,参数0~16个

使用Func改写上面的委托代码

using System;class Program {static void Main(string[] args){Func<int,int,int> addDelegate = new Func<int,int, int>((new Test()).Add2num);Console.WriteLine(addDelegate(1,2));}
}class Test{public int Add2num(int x,int y){return x+y;}
}

Action和Func参数类型使用泛型定义,不能给形参名称


http://www.ppmy.cn/news/213408.html

相关文章

QSS中position属性的作用及应用场景详解

概述 QSS&#xff08;Qt Style Sheets&#xff09;是用于美化和定制化Qt应用程序的样式表语言。其中的position属性是用于控制元素的定位方式。了解和掌握position属性的使用方法对于创建精美的用户界面布局至关重要。本文将详细介绍QSS中position属性的作用、用法以及一些常见…

教你win7显卡驱动如何安装,win7电脑显卡驱动的安装方法

win7显卡驱动安装失败怎么办?显卡是电脑重要配置之一,想要显卡正常工作,就需要给电脑装上显卡驱动.最近有朋友反映自己的显卡驱动安装不上怎么办.下面小白教下大家win7显卡驱动安装失败的解决方法.更多win11安装教程 1.打开系统界面后&#xff0c;先点击控制面板主页。 2.点击…

hd750核显相当于什么显卡

hd750核显相当于N卡的GT 630M&#xff0c;GT 630M作为笔记本新系列显卡芯片组与GT610M同时代替GT540M与GT520M&#xff0c;其性能与GT540M相比略高。 GT 630M拥有2种核心GF108,GF117。 组装电脑怎么搭配更合适这些点很重要 http://www.adiannao.cn/du 英特尔第11代酷睿台式机级…

Centos7/RedHat7安装NVIDIA显卡驱动

Linux系统一般默认安装的是开源的nouvea显卡驱动&#xff0c;它与nvidia显卡驱动产生冲突&#xff0c;欲装nvidia必禁nouvea&#xff01;其次Nvidia驱动默认安装OpenGL桌面&#xff0c;然而这又与GNOME桌面冲突&#xff0c;为了系统不宕机&#xff0c;也需禁用nvidia的OpenGL&a…

Centos7安装NVIDIA GPU显卡驱动

文章目录 一、前言二、前提准备1、安装依赖环境&#xff1a;2、查看内核版本、查GPU3、屏蔽系统自带的nouveau4、重建initramfs image步骤5、修改运行级别为文本模式6、重新启动服务器 三、安装驱动1、下载安装源码包2、下载安装NVIDIA驱动程序3、安装成功后查看配置信息 四、总…

条款28:理解引用折叠

条款23曾经提及&#xff0c;实参在传递给函数模板时&#xff0c;推导出来的模板形参会将实参是左值还是右值的信息编码到结果型别中。但该条款未曾提及&#xff0c;这个编码操作只有在实参被用以初始化的形参为万能引用时才会发生。不过&#xff0c;有一个充分的理由来解释为什…

华为AR路由器的无线AC和AP分别是指什么

有些同学分不清AR路由器的AC和AP到底是指什么&#xff0c;其实就是两种无线功能的工作方式&#xff0c;不同的方式用于不同的场景。对于家庭、小企业等SOHO场所&#xff0c;推荐AR路由器工作在FAT AP模式。在该模式下&#xff0c;AR路由器作为FAT AP&#xff0c;独立为用户提供…

【网络】UDP网络服务器

代码的整体逻辑&#xff1a; UDP服务端&#xff1a;udpServer.cc&#xff08;服务端的调用&#xff09;,udpServer.hpp&#xff08;服务端的实现&#xff09; UDP客户端&#xff1a;udpClient.cc&#xff08;客户端的调用&#xff09;,udpClient.hpp(客户端的实现) 1.udp服务…