Nullish合并运算符允许在变量不是null或undefined时赋值,否则为表达式赋值。 a = b ??other 这是对以前使用的||的改进,因为如果b是空字符串或其他假的值,||也会指定其他值,但不是空值。但是,有时我们也会使用&&进行赋值,例如 a = b && func(b) 这里我们只想在b上做func,如果它不是空的,否则指定空的b。 当然,&&会检查错误,而不是nullishness。
正如您在中所看到的,我们可以编写空合并运算符,并将其与抛出表达式结合起来,如下所示{ set => name = valueArgumentNullException(paramName: nameof(value), message: "Name cannot be null");但在许多情况下,如果左值为空,为什么C#语言设计器允许用空合并<