簡體   English   中英

與可為空的對象的屬性合並?

[英]Coalesce with property of nullable object?

您好,有什么辦法可以像下面這樣形成條件? 如果field為null,則返回false else field.Property?

class Node
{
    public bool IsFilled;
}

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

我該怎么說呢, if nodeBuffer is null then false else nodeBuffer.IsFilled嗎?

是的,您可以使用與Nullable<bool>一起使用的相等運算符

public bool IsFilled => this.nodeBuffer?.IsFilled == true;

可空類型支持其非空類型支持的所有運算符,即: 提升運算符

this.nodeBuffer?.IsFilled返回一個Nullable<T>因此您可以在其上使用GetValueOrDefault()方法,因此如果為null ,它將為false

因此,您的屬性定義如下所示:

public bool IsFilled => (this.nodeBuffer?.IsFilled).GetValueOrDefault();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM