Чем заменить вложенные проверки? - C#

Узнай цену своей работы

Формулировка задачи:

Последнее время часто встречаюсь с такой конструкцией и она мне искренне не нравится:
if (a !=null) {
   if (a["veryimportantindex"]==!null))
      {
           if (a["veryimportantindex"].children != null)
                b = a["veryimportantindex"].children;
           else b= null;
       }  
       else b= null;
}
else b= null;
Мне хочется придумать какой-то более-менее универсальный метод, которым это можно заменить, но как-то ничего не придумывается. Варианты с операторами ? и ?? выглядят еще хуже. Помогите хотя бы с тем, по каким словам гуглить.
ах, да, я понмаю, что можно написать if (a !=null && a["veryimportantindex"]==!null && a["veryimportantindex"].children) но от код читабельней не становится
Кстати проблема решилась. То, что мне нужно называется maybe-монада и это вовсе не что-то адское из хаскеля =)

Решение задачи: «Чем заменить вложенные проверки?»

textual
Листинг программы
try
{
b = a["veryimportantindex"].children;
}
catch (NullReferenceException ex)
{
b = null;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5