Эквивалент по сравнению с null
будет:
bool isStillValid = (newQ.c != null) == (oldQ.c != null) && (newQ.b != null) == (oldQ.b != null);
Это эквивалентно вашему исходному коду, но я не уверен, что оригинальный код верен ...
isStillValid
будет истинным, если ВСЕ элементы, проверяемые на ноль, фактически равны нулю. Это действительно то, что вы хотели?
То есть, если newQ.c
равно нулю, oldQ.c
равно нулю, newQ.b
равно нулю, а oldQ.b
равно нулю, тогда isStillValid
будет true
.