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

如何将C#中对象非空校验后赋值的逻辑简化为单行代码?

如何在不使用if语句的情况下给非空对象的属性赋值?

针对你想简化的这段逻辑:

if(obj!=null)
{
  obj.prop = false;
}

可以根据使用的编程语言选择以下单行写法:

JavaScript/TypeScript

利用逻辑与运算符&&的短路求值特性——只有左边表达式为真时,才会执行右边的代码:

obj && (obj.prop = false);

当obj为null或undefined时,&&会直接返回obj,不会执行后面的赋值操作;只有obj非空时,才会执行obj.prop = false,完全匹配原逻辑。

C#

C# 中无法直接通过?.进行赋值,但可以用逻辑与运算符结合括号实现单行写法:

obj != null && (obj.prop = false);

这里同样利用短路求值,obj != null为真时才会执行赋值操作。另外也可以用null条件运算符结合赋值的变通写法,但可读性不如前者:

_ = obj?.Prop == null ? null : (obj.Prop = false);

需要注意的是,虽然这些写法实现了单行无if的需求,但可读性未必比简洁的if单行写法(if(obj != null) obj.prop = false;)更高,实际开发中可以根据团队规范选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:15:37