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

C#:空值检查与属性赋值的单行简化写法咨询

问题解答

直接使用Data.GetElement()?.IsSelected = true;无法通过编译,因为C#中空条件运算符?.的返回结果不能作为赋值操作的左值——它本质上是返回一个临时值或可空类型实例,无法直接修改原对象的属性。

不过你可以用以下几种简洁的写法实现需求:

1. C# 8.0+ 模式匹配写法(推荐)

if (Data.GetElement() is { } element) element.IsSelected = true;

这里的{ }是模式匹配中的"非null模式",会自动将Data.GetElement()的结果赋值给element变量,同时完成空检查,代码紧凑且可读性强。

2. 兼容全版本的单行写法

如果使用的是更早版本的C#,可以把变量声明和空检查合并到一行:

var element = Data.GetElement(); if (element != null) element.IsSelected = true;

这种写法兼容性更好,适用于所有C#版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:33:16