Здесь происходит несколько вещей.
Прежде всего, вы используете 'или'. Если левая рука оценивается как ложная, она оценивает правую руку. Если правая рука ложна, она будет продолжать идти по оператору до тех пор, пока условие не станет истинным.
Здесь возможны две проблемы: одно из этих значений не равно нулю, поэтому оно и сводится кпоследняя ветка. Или ваша последняя ветвь использует 'или', когда я считаю, что вы должны использовать &&.
If-Statements в C # при коротком замыкании при использовании оператора or, все, что ему нужно, - это одно условие, которое должно быть истинным для выполнениякод в теле.