Чем заменить вложенные проверки? - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д