C# 语法糖

embedded/2025/3/26 6:02:17/

三元运算符  ?:

使用前

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/embedded/174539.html

相关文章

MySQL请求处理全流程深度解析:从SQL语句到数据返回

MySQL请求处理全流程深度解析&#xff1a;从SQL语句到数据返回 一、MySQL架构全景图 MySQL采用经典的 C/S架构 和 分层设计&#xff0c;其核心模块协同工作流程如下&#xff1a; #mermaid-svg-pAjkxRXUlfrCCRoj {font-family:"trebuchet ms",verdana,arial,sans-se…

HCIP交换机hybrid接口实验

目录 一、实验拓扑 二、实验需求 三、需求分析 四、实验步骤 1、交换机上的配置 SW1&#xff1a; SW2: SW3: 2、路由器上的配置 五、实验结果 1.dhcp获取结果验证 2.连通性测试 六、本练习难点 一、实验拓扑 二、实验需求 1、PC1和PC3所在接口为access接口&#x…

基于视觉的核桃分级与套膜装置研究(大纲)

基于视觉的核桃分级与套膜装置研究&#xff1a;从设计到实现的完整指南 &#xff08;SolidWorks、OpenCV、STM32开发实践&#xff09; &#x1f31f; 项目背景与目标 1.1 为什么选择视觉分级与套膜&#xff1f; 产业痛点&#xff1a; 中国核桃年产量全球第一&#xff0c;但…

执行adb指令报错:error: more than one device/emulator原因及解决方法

1、排查步骤 查看设备详细信息 运行以下命令&#xff0c;观察设备的型号和状态&#xff1a; adb devices 2、在没有连接设备的情况下显示如下 List of devices attached 192.168.1.100:5555 3、可能存在的问题及解决方法&#xff1a; a.断开所有设备后检查拔掉 USB 线&a…

redis分片集群如何解决高并发写问题的?

不使用分片集群&#xff0c;仅使用主从复制和哨兵模式下&#xff0c;可以有多个主从集群&#xff0c;但每个主从集群一般只有一个活跃的主节点并执行写操作&#xff0c;每个主从集群的数据也可能&#xff08;应该&#xff09;是不同的&#xff0c;同时每个主从集群存储的数据没…

Android Compose 切换按钮深度剖析:从源码到实践(五)

Android Compose 切换按钮深度剖析&#xff1a;从源码到实践 一、引言 在现代 Android 应用开发中&#xff0c;用户交互体验至关重要。切换按钮&#xff08;Toggle Button&#xff09;作为一种常见的交互组件&#xff0c;允许用户在两种状态之间进行切换&#xff0c;例如开 /…

flutter-实现Tabs吸顶的PageView效果

文章目录 1. 效果预览2. 结构分析3. 完整代码4. 总结 1. 效果预览 在 Flutter 开发中&#xff0c;创建具有吸顶 Tabs 的 PageView 效果可以极大地提升用户界面的交互性和用户体验。今天&#xff0c;我们就通过一段具体的代码来深入了解如何实现这一功能。效果预览如下&#xf…

鸿蒙保姆级教学

鸿蒙&#xff08;HarmonyOS&#xff09;是华为推出的一款面向全场景的分布式操作系统&#xff0c;支持手机、平板、智能穿戴、智能家居、车载设备等多种设备。鸿蒙系统的核心特点是分布式架构、一次开发多端部署和高性能。以下是从入门到大神级别的鸿蒙开发深度分析&#xff0c…