Проверьте, является ли объект нулевым, прежде чем получить доступ к члену, ИЛИ назначьте ненулевую альтернативу - PullRequest
0 голосов
/ 18 апреля 2020

Мы используем. NET Стандарт 2.1 / C# 8.0. и я ищу что-то, что является вариантом нуль-объединяющего оператора / нулевого условного оператора / троичного оператора.

Упрощенная версия кода, которую я получил, которая работает:

studentPhoneNumber = (student.PhoneNumber != null) ? student.PhoneNumber.Number : "None specified"

studentPhoneNumber - это строка

PhoneNumber сама по себе является классом, который может быть нулевым, если студент еще не установил его.

Я бы предпочел, чтобы это звучало примерно так:

studentPhoneNumber = student.PhoneNumber?.Number : "None specified"

но варианты, которые я пробовал, не работают.

Я знаю Шаблон нулевого объекта Фаулера и закон Деметры, и то, что их применение могло бы упростить это, но это было бы огромным изменением в нашей кодовой базе.

Сейчас я просто искал какой-то оператор, который бы делал это читается легче.

1 Ответ

0 голосов
/ 18 апреля 2020

@ Саджид и @UnholySheep ответы:

student.PhoneNumber?.Number ?? "None specified";
...