С введением Null-Conditional Operators в С# для следующей оценки
if (instance != null && instance.Val != 0)
Если я переписал его таким образом,
if (instance?.Val != 0)
он будет оцениваться как true, если экземпляр является нулевой ссылкой; Он ведет себя как
if (instance == null || instance.Val != 0)
Итак, каков правильный способ переписать оценку с использованием этого нового синтаксиса?
Edit:
instance
- это поле большого объекта, который десериализуется из JSON. Существует довольно много таких фрагментов кода, прежде всего, проверьте, находится ли поле в JSON, если это так, проверьте, не является ли свойство Val НЕ равным константе, только оба условия истинны, выполните некоторую операцию.
Сам код может быть реорганизован, чтобы сделать логический поток более "понятным", как указал Питер в своем комментарии, хотя в этом вопросе меня интересует, как использовать null-conditional operators
с !=
.