В операторе C # с нулевым слиянием то, что у вас есть в вопросе, не является правильным использованием.Это может привести к сбою во время компиляции.
В C # правильный способ написать то, что вы пытаетесь, будет выглядеть так:
trait = this.trait == this.spouse.trait ? self.trait : defaultTrait
Null coalesce в C # возвращает первое значение, которое не 't null в цепочке значений (или null, если нет ненулевых значений).Например, то, что вы написали бы в C #, чтобы вернуть первую ненулевую черту или черту по умолчанию, если все остальные были нулевыми, на самом деле это:
trait = this.spouse.trait ?? self.trait ?? defaultTrait;