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

如何实现可空对象属性判断:对象为空返回false,否则返回属性值?

如何实现「若对象为空则返回false,否则返回其属性值」的条件判断逻辑?

您好,是否可以编写如下条件判断逻辑:如果字段为空则返回false,否则返回该字段的属性值?代码示例如下:

class Node { public bool IsFilled; } 
class Holder { Node nodeBuffer; public bool IsFilled => this.nodeBuffer?.IsFilled ?? false; }

请问如何实现类似「若nodeBuffer为空则返回false,否则返回nodeBuffer.IsFilled」的逻辑?

其实你给出的代码示例已经完美实现了这个需求!咱们来拆解一下这段代码里的关键语法:

  • this.nodeBuffer?.IsFilled:这里的?.是空条件运算符,它会先检查nodeBuffer是否为null。如果nodeBuffer是null,整个表达式直接返回null;如果不为null,就正常访问它的IsFilled属性。
  • ?? false:这是空合并运算符,它会判断前面的表达式结果是否为null。如果是null(也就是nodeBuffer为空的情况),就返回后面的false;如果前面有有效值,就直接返回那个属性值。

如果你习惯更直白的写法,也可以用传统的if-else逻辑来实现,效果完全一致:

class Holder 
{ 
    Node nodeBuffer; 
    public bool IsFilled 
    { 
        get 
        {
            if (this.nodeBuffer == null)
            {
                return false;
            }
            return this.nodeBuffer.IsFilled;
        }
    } 
}

不过显然用空条件+空合并的语法糖写法更简洁优雅,这也是C#里处理这类空值判断的推荐方式哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:08:12