Почему бы не выбросить NullReferenceException
?
var value = parent.Child != null &&
parent.Child.Type == "test"
? parent.Child.Value == 1
: parent.Child.Value == 2;
Давайте перепишем ваш код с временной переменной:
bool condition = parent.Child != null && parent.Child.Type == "test";
var value = condition ? parent.Child.Value == 1 : parent.child.Value == 2;
А затем с помощью оператора if, чтобы сделать этоеще яснее:
bool value = false;
bool condition = parent.Child != null && parent.Child.Type == "test";
if (condition)
{
value = parent.Child.Value == 1;
}
else
{
vaue = parent.Child.Value == 2;
}
Ваше условие требует выполнения двух условий: parent.Child
не равно нулю, а parent.Child.Type
равно "test".
Если ваше состояниеfalse, вы используете часть «else» троичного оператора: parent.Child.Value == 2
.
Если ваше условие ложно из-за parent.Child == null
, вы будете пытаться получить доступ к свойству объекта null
в вашем else
секция, таким образом вызывая NullReferenceException
.