В C # имеется короткое замыкание, поэтому вы можете сделать:
if(null != object && object.name == foo)
do A
else
do B
C # всегда сначала вычисляет первое выражение в условном операторе, и если это не удается, он ничего не пробует в этой части оператора.
Чтобы продвинуться дальше, если в условном операторе у вас будет дорогая операция вместе с одной или несколькими недорогими операциями, хорошо поставить ее в конце, если это возможно, поэтому она будет проверять только дорогую операцию, действительно нужно. Так что-то вроде
if(trivial comparison && trivial comparison && REALLY EXPENSIVE OPERATION)
Теперь будет выполняться только дорогая операция в качестве крайней меры.