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

C#基础——匿名函数和参数不固定的函数

匿名函数、参数不固定的函数

匿名函数:没有名字,又叫做lambda表达式,具有简洁,灵活,可读的特性。

具名函数:有名字的函数。

1、简洁性:使用更少的代码实现相同的功能

MyDelegate myDelegate2 = delegate (string a) {Console.WriteLine(a);
};
myDelegate2("委托调用匿名函数");//使用Action调用匿名函数
Action<string> action1 = delegate (string a) {Console.WriteLine(a);
};
action1("使用Action来调用匿名函数");

2、灵活性:匿名方法可以作为参数传递给方法,也可以当作返回值返回。

 //使用Func调用匿名函数Func<int, int, int> func1 = delegate (int a, int b) {return a + b;};Console.WriteLine(func1(100, 200)); //300

3、可读性:因为代码变少了,所以结构更加清晰易懂。

//如果没有参数,那么可以进一步的简写
//使用Action调用没有参数的匿名函数
Action greet = delegate { Console.WriteLine("这是简写的方法"); };
greet();
//lambda表达式,本质也是匿名函数,也叫箭头函数
Action greet2 = () => { Console.WriteLine("这是最简单的写法"); };
greet2();//使用Func调用匿名函数(箭头函数)
Func<int, int, int> func2 = (int a, int b) => { return a + b; };
Console.WriteLine(func2(1, 2));//继续简化,根据前面泛型约束传入的类型,后面箭头函数里面就不用写类型了
Func<int, int, int> func3 = (a, b) => { return a + b; };
Console.WriteLine(func3(10, 20));

匿名函数支持多播(多个委托一起执行),一个委托,代表了多个方法

Action<string> test = a => { Console.WriteLine("test" + a); };
test += a => { Console.WriteLine(a); };
test("hello");//testhello  hello  执行两次

开发当中临时需要一个方法,而却方法的使用次数比较少,代码结构也比较简单。推荐使用匿名函数。

如果方法的参数不固定,可以将参数类型前面添加params修饰符

params string[] string 不管是几个参数只要类型正确都会添加到这个数组中

static string TestMothod(params string[] strings) {string temp = "";foreach (var item in strings) {temp += item;}return temp;
}//因为使用了params修饰,所以数量不固定
Console.WriteLine(TestMothod("1", "2", "3", "4"));

相关文章:

C#基础——匿名函数和参数不固定的函数

匿名函数、参数不固定的函数 匿名函数&#xff1a;没有名字&#xff0c;又叫做lambda表达式&#xff0c;具有简洁&#xff0c;灵活&#xff0c;可读的特性。 具名函数&#xff1a;有名字的函数。 1、简洁性&#xff1a;使用更少的代码实现相同的功能 MyDelegate myDelegate…...

PCL 点云匹配 4 之 (非线性迭代点云匹配)lM-ICP

一、IM迭代法 PCL IterativeClosestPointNonLinear 非线性L-M迭代法-CSDN博客 Matlab 非线性迭代法&#xff08;3&#xff09;阻尼牛顿法 L-M-CSDN博客 MATLAB实现最小二乘法_matlab最小二乘法-CSDN博客...

MySQL_14.数据库高速缓冲区空间管理

数据库高速缓冲区空间管理 Oracle 用 LRU&#xff08;Least Recently Used&#xff09;算法来管理数据高速缓冲区。该算法将最近使用的 数据块按照使用时间的早晚排成队列&#xff0c;当缓冲区占满后&#xff0c;调入新的数据块时&#xff0c;必须清除已有的数据 块&#xff0c…...

leetcode 974. 和可被 K 整除的子数组(优质解法)

代码&#xff1a; class Solution {public int subarraysDivByK(int[] nums, int k) {HashMap<Integer,Integer> hashMapnew HashMap();hashMap.put(0,1);int count0; //记录子数组的个数int last0; //前一个下标的前缀和int now0; //当前下标的前缀和for(int i0;…...

【技术】MySQL 日期时间操作

MySQL 日期时间操作 MySQL 系统时间MySQL 时间格式化MySQL 年月日时分秒周MySQL 日期计算时分秒时差日期差日期加减 MySQL 系统时间 now()&#xff1a;系统时间&#xff0c;年月日时分秒current_date&#xff1a;系统时间&#xff0c;年月日current_time&#xff1a;系统时间&…...

测试理论知识三:测试用例、测试策略

1.测试用例 完全的测试是不可能的&#xff0c;对任何程序的测试必定是不完全的&#xff0c;那么&#xff0c;最显然的测试策略就是努力使测试尽可能完全。 进行测试前&#xff0c;推荐先使用黑盒测试的方法设计测试用例&#xff0c;然后使用白盒测试方法来补充的测试用例。 2…...

【clickhouse】在CentOS中离线安装clickhouse

https://packages.clickhouse.com/rpm/stable/ 通过如下命令检查是否安装过clickhouse [root172 ~]# rpm -qa | grep clickhouse 把rpm安装包放到opt/lzh目录 按照如下命令顺序安装 [root172 /]# rpm -ivh /opt/lzh/clickhouse-common-static-22.1.2.2-2.x86_64.rpm [root…...

微信商户号申请0.2费率

我们都知道&#xff0c;目前市场上的支付宝或者微信商户收款&#xff0c;无论是线上收款还是实体店收款&#xff0c;一般都采用0.6%的收款费率&#xff0c;1万元就是60元。 其实这不低的。 大多数线下实体店商家可能使用的聚合支付码可能是0.38%&#xff0c;1万元是38。 虽然不…...

基于单片机设计的电子指南针(LSM303DLH模块(三轴磁场 + 三轴加速度)

一、前言 本项目是基于单片机设计的电子指南针&#xff0c;主要利用STC89C52作为主控芯片和LSM303DLH模块作为指南针模块。通过LCD1602液晶显示屏来展示检测到的指南针信息。 在日常生活中&#xff0c;指南针是一种非常实用的工具&#xff0c;可以帮助我们确定方向&#xff0…...

深度学习 该用什么标准判断差异最小

决定差异最小的标准通常依赖于您的具体问题和任务。以下是一些常见的用于评估预测性能的标准和思路&#xff1a; 1. **均方根误差 (RMSE):** RMSE 是预测值和真实值之间差异的平方的平均值的平方根。它对较大的误差更加敏感。 from sklearn.metrics import mean_squared_error…...

汽车制造厂设备故障预测与健康管理PHM

在现代汽车制造工业中&#xff0c;设备的可靠性和稳定性对于保证生产线的高效运行至关重要。为了提高生产效率、降低维修成本以及确保产品质量&#xff0c;汽车制造厂逐渐采用设备故障预测与健康管理&#xff08;PHM&#xff09;系统&#xff0c;以实现对设备状态的实时监测和预…...

如何通过宝塔面板搭建一个MySQL数据库服务并实现无公网ip远程访问?

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…...

C++ Qt开发:TabWidget实现多窗体功能

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍TabWidget标签组件的常用方法及灵活运用。 Q…...

【轻量化篇】YOLOv8改进实战 | 更换主干网络 Backbone 之 RepGhostnet,重参数化实现硬件高效的Ghost模块

YOLOv8专栏导航:点击此处跳转 前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操…...

【STM32工具篇】使用CLion开发STM32

本文主要记录使用CLion开发STM32&#xff0c;并调试相关功能 使用的CLion版本&#xff1a;2023.3.1 CLion嵌入式配置教程&#xff1a;STM32CubeMX项目 |CLion 文档 (jetbrains.com) OpenOCD官网下载&#xff1a;Download OpenOCD for Windows (gnutoolchains.com) GNU ARM工…...

elementui中的el-table,当使用fixed属性时,table主体会遮挡住滚动条的大半部分,导致很难选中。

情况&#xff1a; 解决&#xff1a; el-table加个类&#xff0c;这里取为class"table" 然后是样式部分&#xff1a; <style scoped lang"scss"> ::v-deep.table {// 滚动条高度调整::-webkit-scrollbar {height: 15px;}// pointer-events 的基本信…...

鸿蒙端H5容器化建设——JSB通信机制建设

1. 背景 2023年鸿蒙开发者大会上&#xff0c;华为宣布为了应对国外技术封锁的潜在风险&#xff0c;2024年的HarmonyOS NEXT版本中将不再兼容Android&#xff0c;并推出鸿蒙系统以及其自研的开发框架&#xff0c;形成开发生态闭环。同时&#xff0c;在更高维度上华为希望将鸿蒙…...

数据管理平台Splunk Enterprise本地部署结合内网穿透实现远程访问

文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 Splunk Enterprise是一个强大的机器数据管理平台&#xff0c;可帮助客户分析和搜索数据&#xff0c;以及可视化数据…...

MaBatis使用`ResultMap`标签手动映射详解使用

文章目录 MaBatis使用ResultMap标签手动映射详解使用1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系&#xff0c;二者不同时无法自动ORM&#xff0c;如下&#xff1a;2、在SQL中使用 as 为查询字段添加列别名&#xff0c;以匹配属性名&#xff1a;但是如果我…...

openstack-keystone服务

文章目录 keystone服务安装和配置先决条件安装并配置组件运行以下命令来安装包。编辑文件 /etc/keystone/keystone.conf 并完成如下动作&#xff1a;初始化身份认证服务的数据库&#xff1a;初始化Fernet keys&#xff1a;Bootstrap the Identity service: 配置 Apache HTTP 服…...

大数据HCIE成神之路之数据预处理(3)——数值离散化

数值离散化 1.1 无监督连续变量的离散化 – 聚类划分1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 无监督连续变量的离散化 – 等宽划分1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实…...

stm32 寄存器、地址、位带操作

存储器区域功能划分 4GB 的地址空间中&#xff0c;ARM 已经粗线条的平均分成了 8 个块&#xff0c;每块 512MB&#xff0c;每个块也都规定了用途&#xff0c;具体分类见表格 6-1。每个块的大小都有 512MB&#xff0c;显然这是非常大的&#xff0c;芯片厂商在每个块的范围内设计…...

记录 | gdb使用backward-cpp来美化调试log

# 在当前工程目录下 git clone https://github.com/bombela/backward-cpp.git 编辑CMakeList.txt cmake_minimum_required(VERSION 3.15)project(exampleproj LANGUAGES CXX)add_subdirectory(backward-cpp)add_executable(main main.cpp)target_sources(main PUBLIC ${BACKW…...

EasyExcel模板导出(行和列自动合并)

1.需求背景: ①需要从第三方获取数据,第三方接口有两个参数,开始时间和结束时间 ②获取回来的数据并没有入库,所以不能通过数据库将数据归类统计,excel合并大概的流程是判断上一行或者左右相邻列是否相同,然后进行合并,所以不能是零散的数据且客户要求每一个自治区和每一个航站…...

EOCR-i3MZ/iFMZ施耐德漏电保护继电器产品简介

EOCR-i3MZ/iFMZ是施耐德EOCR的新一代电子式电动机保护器产品&#xff0c;具有过电流、欠电流、缺相、逆相、堵转、失速、三相不平衡、接地等保护功能。EOCR-i3MZ/iFMZ是通讯型产品&#xff0c;提供Modbus RTU通讯协议&#xff0c;RS485接口。 为方便设备维护人员排查电动机的故…...

golang开发--beego入门

Beego 是一个基于 Go 语言的开源框架&#xff0c;用于构建 Web 应用程序和 API。它采用了一些常见的设计模式&#xff0c;以提高开发效率、代码可维护性和可扩展性。 一&#xff0c;MVC设计模式 Beego 框架采用了经典的 MVC&#xff08;Model-View-Controller&#xff09;设计…...

python调取一欧易API并写一个比特币均线交易策略

比特币均线交易策略是一种基于比特币价格的移动均线的交易策略。它通过计算不同时间段的移动均线来确定买入和卖出点。 具体步骤如下&#xff1a; 确定要使用的均线。常用的均线包括5日、10日、20日、50日和200日均线。较短的均线可以更快地反应价格变动&#xff0c;而较长的均…...

使用arthas排查请求超时问题

现象 客户端调用服务时间出现偶尔超时现象 排查 因为服务已开启arthas&#xff0c;使用trace命令监控 $ trace com.lizz slowfun #cost > 1000 -n 10 监控com.lizz类中的slowfun方法&#xff0c;输出用时超过1000ms的记录&#xff0c;记录10条 Press CtrlC to abort. Aff…...

SAP ABAP EXCEL 下载模板并导入

具体参考&#xff1a; ABAP EXCEL 下载摸板 获取数据模板文件路径 FORM fm_get_filepath .DATA: lv_filename TYPE string,lv_path TYPE string,lv_fullpath TYPE string,lv_title TYPE string.co_objid ZMMRP002.CONCATENATE co_objid - sy-datum sy-uzeit INTO l…...

Map集合体系

Map集合的概述 Map集合是一种双列集合&#xff0c;每个元素包含两个数据。 Map集合的每个元素的格式&#xff1a;keyvalue(键值对元素)。 Map集合也被称为“键值对集合”。 Map集合的完整格式&#xff1a;{key1value1 , key2value2 , key3value3 , ...} Map集合的使用场景…...

服务器网站部署端口配置/郑州seo代理外包公司

在基于Java的内容管理系统(CMS)的世界中导航并不是最简单的任务。新的解决方案不断涌现&#xff0c;以帮助用户管理其网站和web应用程序上的内容。各种内容管理系统的规模、价格和可扩展性各不相同。 这里有目前使用的一些最流行的Java CMS。 Magnolia Magnolia是一个完全无头的…...

个人网站简单/个人免费网站建设

临近年底&#xff0c;人们日益关注格力董事长董明珠与小米董事长雷军的10亿赌约谁将赢的问题&#xff0c;其实当下对格力最不利的是它的直接竞争对手美的正凭借多元化的优势在利润方面快速缩短与格力的差距&#xff0c;而此前在营收方面前者已将后者甩开一大截距离&#xff0c;…...

定制型网站制作哪家好/媒体资源网

python2 中 pip install uniout 示例 复制代码 >>> from pprint import pprint >>> langs [ ... Hello, world!, ... 你好&#xff0c;世界&#xff01;, ... こんにちは世界, ... uHello, world!, ... u你好&#xff0c;世界&#xff01;, ... uこんにち…...

海西州住房建设局网站/关键字排名优化公司

https://yundun.console.aliyun.com/?spm5176.200001.0.0.CZkdXg&pcas#/cas/download/2***4?regionId 点击“下载证书“按钮 安装证书 文件说明&#xff1a; 1. 证书文件2***4.pem&#xff0c;包含两段内容&#xff0c;请不要删除任何一段内容。 2. 如果是证书系统创建的…...

宁波有做网站的地方吗/seo优化收费

一、JVM的安装和配置 一、下载JDK1.8的安装包 二、将JDK1.8的安装包复制到/opt/目录下 三、解压JDK1.8的安装包 tar zxvf jdk-8u65-linux-x64.tar.gz四、更改JDK1.8的文件夹名称 mv jdk1.8.0_65 jdk五、删除JDK1.8的安装包 rm -rf jdk-8u65-linux-x64.tar.gz六、配置JDK的…...

怎样建设美丽中国?/重庆网站快速排名优化

北京时间6月1日凌晨消息&#xff0c;据路透社报道&#xff0c;针对2013年戴尔创始人迈克尔戴尔&#xff08;Michael Dell&#xff09;和银湖资本&#xff08;Silver Lake Partners&#xff09;以249亿美元收购戴尔公司这一交易&#xff0c;特拉华州一法官周二裁定&#xff0c;该…...