Есть ли способ заставить C # игнорировать NullReferenceException
(или любое конкретное исключение в этом отношении) для набора операторов.
Это полезно при попытке прочитать свойства десериализованного объекта, который может содержать много нулевых объектов.
Наличие вспомогательного метода для проверки на null может быть одним из способов, но я ищу что-то похожее на «On Error Resume Next» (из VB) на уровне блока операторов.
РЕДАКТИРОВАТЬ: Try-Catch пропустит последующие операторы при исключении
try
{
stmt 1;// NullReferenceException here, will jump to catch - skipping stmt2 and stmt 3
stmt 2;
stmt 3;
}
catch (NullReferenceException) { }
Например: я десериализирую сообщение XML для объекта, а затем пытаюсь получить доступ к свойству типа
Message.instance[0].prop1.prop2.ID
теперь prop2 может быть нулевым объектом (потому что он не существует в XML Message - необязательный элемент в XSD). Прямо сейчас мне нужно проверить нулевое значение для каждого элемента в иерархии, прежде чем получить доступ к элементу листа. то есть я должен проверить, если instance [0], prop1, prop2 не равны NULL, прежде чем получить доступ к «ID».
Есть ли лучший способ избежать проверки на нуль для каждого элемента в иерархии?