C# 语法糖

server/2025/4/2 5:49:58/

三元运算符  ?:

使用前

int value = -2;
if (value < 0)
{value = 0;
}
else
{value = 1;
}

使用后

int value = -2;
value = value < 0 ? 0 : 1;

Null 合并操作符 ??

 使用前

string value = GetString();
if (value == null)
{value = "Empty";
}

使用后

如果左操作数的值不为null,则 null 合并运算符 ?? 返回该值;否则,它会计算右操作数并返回其结果。 如果左操作数的计算结果为非 null,则?? 运算符不会计算其右操作数。 

string value = GetString() ?? "Empty";

内插字符串 $

字符串内插为格式化字符串提供了一种可读性和便捷性更高的方式。 它比字符串复合格式设置更容易阅读。

使用前

string name = "小明";
int age = 18;
string.Format("大家好,我叫{0},今年{1}岁。", name, age);

使用后

string name = "小明";
int age = 18;
var format = $"大家好,我叫{name},今年{age}岁。";

Null 条件运算符 ?.

如果对象为NULL,则不执行?.后面的逻辑

使用前

Action action;
if (action != null)
{action.Invoke();
}

使用后

Action action;
action?.Invoke();

可空类型修饰符  ?

引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。
例如:string str=null; 是正确的,int i=null; 编译器就会报错。
使用可空类型修饰符?可以让值类型变量赋值null

int? value = 0;
value = null;

using

当离开 using 语句块时,将释放获取的IDisposable实例。 using 语句可确保即使在 using 语句块内发生异常的情况下也会释放可释放实例。

使用前

StreamReader reader = null;
try
{reader = File.OpenText("numbers.txt");
}
finally
{reader?.Dispose();
}

使用后

using (StreamReader reader = File.OpenText("numbers.txt"))
{}

http://www.ppmy.cn/server/180609.html

相关文章

HCIP【OSPF 详解】

目录 1 OSPF 基础知识简介 1.1 技术背景&#xff08;为了补充RIP存在的问题&#xff09; 1.2 OSPF特点 1.3 OSPF的三张表 1.3.1 邻居表 1.3.2 路由表 1.3.3 拓扑表&#xff08;链路状态数据库&#xff0c;LSDB&#xff09; 1.4 OSPF的数据包 1.4.1 头部数据包内容 1.…

如何防御TCP洪泛攻击

TCP洪泛攻击&#xff08;TCP Flood Attack&#xff09;是一种常见的分布式拒绝服务&#xff08;DDoS&#xff09;攻击手段&#xff0c;以下是其原理、攻击方式和危害的详细介绍&#xff1a; 定义与原理 TCP洪泛攻击利用了TCP协议的三次握手过程。在正常的TCP连接建立过程中&a…

华为开源自研AI框架昇思MindSpore应用案例:基于MindSpore框架实现PWCNet光流估计

如果你对MindSpore感兴趣&#xff0c;可以关注昇思MindSpore社区 1 环境准备 1.进入ModelArts官网 云平台帮助用户快速创建和部署模型&#xff0c;管理全周期AI工作流&#xff0c;选择下面的云平台以开始使用昇思MindSpore&#xff0c;可以在昇思教程中进入ModelArts官网 创建…

Java进阶——位运算

位运算直接操作二进制位&#xff0c;在处理底层数据、加密算法、图像处理等领域具有高效性能和效率。本文将深入探讨Java中的位运算。 本文目录 一、位运算简介1. 与运算2. 或运算异或运算取反运算左移运算右移运算无符号右移运算 二、位运算的实际应用1. 权限管理2. 交换两个变…

图解G1垃圾回收器

概述 G1 垃圾回收器在 Java 7 update 4 后引入。它是分代、增量、并行与并发的标记 - 复制回收器&#xff0c;旨在适应内存扩大、处理器增多的情况&#xff0c;降低暂停时间&#xff0c;兼顾吞吐量。 与 CMS 相比&#xff0c;G1 有这些不同&#xff1a; 内存连续性&#xff1…

Python:爬虫概念与分类

网络请求&#xff1a; https://www.baidu.com url——统一资源定位符 请求过程&#xff1a; 客户端&#xff0c;指web浏览器向服务器发送请求 请求&#xff1a;请求网址(request url)&#xff1b;请求方法(request methods)&#xff1b;请求头(request header)&…

xtuner微调大模型教程

1.构建虚拟环境 conda create --name xtuner-env python3.10 -y conda activate xtuner-en 拉取 XTuner&#xff0c;过程大约需要几分钟 git clone https://github.com/InternLM/xtuner.git 然后安装依赖的软件&#xff0c;这步需要的时间比较长。可以百度pip的清华源进行…

基于yolo11的水稻病虫害智能分析系统

基于yolo11的水稻病虫害智能分析系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】基于YOLO模型的水稻病虫害检测与分析功能 【技术栈】 ①&#xff1a;系统环境&#xff1a;Windows/Linux/MacOS ②&#xff1a;开发环境&#xff1…