C# .NET Framework的特殊委托
C# .NET Framework的特殊委托
.NET Framework中定义了几种特殊的委托类型,以简化委托的使用。以下是一些常用的特殊委托类型:
Predicate<T>
这是一个返回布尔值的委托,接受一个类型为T的参数。常用于定义过滤条件。
using System;
using System.Collections.Generic;// 测试一个整数列表,找出所有大于10的整数。
class Program
{static void Main(){List<int> numbers = new List<int> { 1, 12, 3, 45, 6, 78 };Predicate<int> isGreaterThan10 = x => x > 10;foreach (var number in numbers.FindAll(isGreaterThan10)){Console.WriteLine(number);}}
}
Converter<TInput, TResult>
接受一个类型为TInput的参数,并返回一个类型为TResult的对象。用于类型转换。
using System;// 将字符串数组转换为整数数组。
class Program
{static void Main(){string[] strings = { "1", "2", "3" };Converter<string, int> stringToInt = s => int.Parse(s);int[] integers = Array.ConvertAll(strings, stringToInt);Console.WriteLine(string.Join(", ", integers));}
}
Comparison<T>
接受两个类型为T的参数,并返回一个整数,表示它们的相对顺序。常用于排序操作。
using System;class Program
{static void Main(){int[] numbers = { 3, 1, 4, 1, 5 };Comparison<int> comparer = (x, y) => x.CompareTo(y);Array.Sort(numbers, comparer);Console.WriteLine(string.Join(", ", numbers));}
}
Action
一个无返回值的委托,可以接受从0到16个参数。Action是其泛型形式。
using System;// 定义一个无参数无返回值的委托,用于打印消息。
class Program
{static void PrintMessage(){Console.WriteLine("Hello, World!");}static void Main(){Action printAction = PrintMessage;printAction();}
}
Func<TResult>
一个有返回值的委托,返回类型为TResult,无参数。Func<T1, T2, …, TResult>是其泛型形式,可以接受从1到16个参数。
using System;// 定义一个返回布尔值的委托,检查一个数字是否为偶数。
class Program
{static void Main(){Func<int, bool> isEven = number => number % 2 == 0;Console.WriteLine(isEven(10)); // 输出 TrueConsole.WriteLine(isEven(7)); // 输出 False}
}
EventHandler
专门用于事件处理的标准委托类型,接受一个Object类型的sender和EventArgs或其派生类型e作为参数。
using System;// 使用 EventHandler 来定义一个事件处理程序,响应按钮点击事件。
class Program
{public event EventHandler ButtonClicked;protected virtual void OnButtonClicked(EventArgs e){ButtonClicked?.Invoke(this, e);}public void SimulateButtonClick(){OnButtonClicked(EventArgs.Empty);}
}class Test
{static void Main(string[] args){Program p = new Program();p.ButtonClicked += (sender, e) =>{Console.WriteLine("Button was clicked.");};p.SimulateButtonClick();}
}
相关文章:
C# .NET Framework的特殊委托
C# .NET Framework的特殊委托 .NET Framework中定义了几种特殊的委托类型,以简化委托的使用。以下是一些常用的特殊委托类型: Predicate<T> 这是一个返回布尔值的委托,接受一个类型为T的参数。常用于定义过滤条件。 using System; …...
C# 判断电脑是否联网
项目中连接webAPI需要判断是否联网,故找到这个方法,不需要引用任何dll,代码复制一下,直接使用。wininet.dll是系统自带的 public void Initial(){try{ if (IsNetworkConnected){SvMaster.Log.WriteInfo("网络…...
爬虫解析代码结构
在设计中加入一个顶层接口是有益的,特别是当您希望实现统一的接口来处理所有类型的排行榜数据时。这样做可以提供更好的灵活性和扩展性,同时保持代码的整洁和易于维护。 设计概述 接口: 定义一个 RankingDataCollector 接口,它定义了所有数…...
day 23 进程间通信—管道
注意事项: 1、如果管道中至少有一个写端: 如果管道中有数据,直接读出 如果管道中没有数据,会阻塞等待直到有数据写入后读出 2、如果管道中没有写端: 如果管道中有数据,直接…...
Python酷库之旅-第三方库Pandas(073)
目录 一、用法精讲 296、pandas.Series.dt.as_unit方法 296-1、语法 296-2、参数 296-3、功能 296-4、返回值 296-5、说明 296-6、用法 296-6-1、数据准备 296-6-2、代码示例 296-6-3、结果输出 297、pandas.Series.dt.days属性 297-1、语法 297-2、参数 297-3、…...
使用easyexcel导出,发生了Exception: could not find acceptable repesentation
报错信息: 原因以及解决方案: 原因是我的代码使用Resp响应返回实体,其实使用EasyExcel导出已经设置了响应编码,导致重复了。 当你通过 HttpServletResponse 的输出流写入文件时,你已经直接控制了响应体。如果此时还尝…...
android display 笔记(五)HWC(Hardware Composer)
HWC 简单来说HWC是用来合成图形和显示图形的,可以把多个图形缓存传给硬件混合渲染器,让硬件混合渲染器执行合成操作,显示图形就是直接将图形缓存显示到屏幕。 android 14 /hardware/interfaces/graphics/composer/2.1/IComposer.hal 19 im…...
【模电笔记】——集成运算放大电路
tips:本章节的笔记已经打包到word文档里啦,建议大家下载文章顶部资源(有时看不到是在审核中,等等就能下载了。手机端下载后里面的插图可能会乱,建议电脑下载,兼容性更好且易于观看),…...
Android Studio Gradle多渠道打包
原理使用Android Studio打一次渠道包,用反编译工具反编译后,修改渠道信息重新编译 准备文件 分渠道配置文件:channel.txt ↓ # 多渠道配置里“统计平台”、“市场名称”、“渠道编号”分别代表什么意思? # 统计平台:…...
什么是DNS缓存?DNS缓存有哪些作用和危害?
在互联网世界的运转机制中,DNS(域名系统)是其中的关键,而DNS缓存则是这一系统的重要环节。它既能加快网站的访问速度,同时也会对网络安全造成影响,因此了解DNS缓存对于网站的日常管理至关重要。 什么是DNS…...
web基础与http协议与配置
目录 一、web基础 1.1 DNS与域名(详解看前面章节) 1.2 网页的概念(HTTP/HTTPS) 1.2.1 基本概念 1.2.2 HTML文档结构(了解) 1.2.3 web相关重点 1.2.4 静态资源和动态资源 二、http协议 2.1 概述 2.2 cookie和session&…...
机械学习—零基础学习日志(python编程2)
零基础为了学人工智能,正在艰苦的学习 这里把,函数以及类相关的知识做一个笔记,放在这里。 期待与大家交流~ 变量作用域 Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的…...
element-plus的表单输入框有清除按钮的,文字输入前后宽度不一致怎么解决
输入内容之后多了一个可清除的图标,输入框的宽度也被撑开了 根据输入前后的dom对比发现,多了一个图标的span标签 :deep(.el-input__wrapper) {position: relative;.el-input__inner {padding-right: 18px;}.el-input__suffix {position: absolute;right:…...
解决Docker拉取镜像时 i/o timeout错误
目录 一,设置Docker镜像源(推荐) 1.1 解决方案1:配置加速地址 1.2 解决方案2:使用代理拉取镜像 1.3 解决方案3:备用办法:直接传送镜像 二,目前可用的镜像源 一,设置…...
面壁的智能开源 MiniCPM-V 2.6 边缘人工智能多模态功能与 GPT-4V 不相上下
"MiniCPM-V2.6 "是一个边缘多模态人工智能模型,仅拥有 80 亿个参数,却在单图像、多图像和视频理解任务中取得了低于 200 亿个参数的三项 SOTA(艺术境界)成绩,显著增强了边缘多模态能力,并与 GPT-…...
dhcp+checkkickstar的实验理解
文章目录 实验介绍使用的服务介绍PXE服务dhcp服务Kickstart 服务tftp服务 第一部分(基础部分)代码展示注意点第一点第二点 结果展示 第二部分(…...
Android网络安全:如何防止中间人攻击
文章目录 引言一、中间人攻击概述二、预防中间人攻击的方法2.1 使用HTTPS2.2 证书锁定(Certificate Pinning)2.3 使用SSL/TLS最佳实践2.4 验证主机名 三、总结 引言 中间人攻击(Man-in-the-Middle,简称MITM)是一种常见…...
NOI Linux 2.0 的安装说明以及使用指南
关于 NOI Linux 2.0 NOI Linux 是 NOI 竞赛委员会基于 Ubuntu 操作系统开发的一款 Linux 桌面发行版,是一套免费的、专门为信息学奥林匹克竞赛选手设计的操作系统,是 NOI 系列赛事指定操作系统,适用于常见笔记本电脑和桌面电脑。 新建虚拟机…...
07、MySQL-多表查询
目录 1、内连接 1.1 隐式内连接 1.2 显式内连接 2、外连接 2.1 左外连接 2.2 右外连接 3、自连接 4、联合查询 5、子查询 5.1 标量子查询 5.2 列子查询 5.3 行子查询 5.4 表子查询 1、内连接 概念:相当于查询A、B表交集的部分数据 1.1 隐式内连接 语法&…...
20240809 每日AI必读资讯
乒乓球AI机器人赢了人类!正反手灵活转换,擦网球高球都能接 - 谷歌发布首个达到人类竞技水平的机器人Agent,挑战乒乓球赛场。 - 机器人通过学习大量乒乓球状态数据,掌握了正手上旋球、反手瞄准等技能,展现出高速运动…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...
