You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中右侧可空值为null时不修改原值的赋值简写方法

针对该需求的简洁写法

C# 中可以直接用**空合并运算符??**实现你要的逻辑,写法如下:

value1 = value2 ?? value1;

逻辑说明

  • 空合并运算符??会优先返回左操作数(也就是你要判断的value2)的非空值,当value2为null时才会返回右操作数的值
  • 这里右操作数填value1本身,就实现了value2非空时更新value1、为null时value1保持原值的效果,和你原有的if逻辑完全等价

如果你更偏好显式判断HasValue,也可以用三元运算符实现,写法如下:

value1 = value2.HasValue ? value2.Value : value1;

补充说明

目前到C# 12版本为止,官方还没有推出你示意的那种专门针对右操作数判空的赋值运算符,上面的空合并运算符写法是目前最简洁的实现方案。

内容的提问来源于stack exchange,提问作者dstr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:00:03