Примечание: Этот вопрос задавался перед введением оператора .?
в С# 6/Visual Studio 2015.
Мы все были там, у нас есть какое-то глубокое свойство, такое как cake.frosting.berries.loader, что нам нужно проверить, не является ли оно нулевым, поэтому нет исключения. Способ состоит в том, чтобы использовать инструкцию short-circuiting if
if (cake != null && cake.frosting != null && cake.frosting.berries != null) ...
Это не совсем элегантно, и, возможно, должен быть более простой способ проверить всю цепочку и посмотреть, сталкивается ли она с нулевой переменной/свойством.
Возможно ли использование какого-либо метода расширения или это будет функция языка, или это просто плохая идея?