ОК, ваша проблема в том, что вы переводите язык на код. Ваше заявление должно быть:
if (updateYN.ToUpper() != Constants.NO
&& updateYN.ToUpper() != Constants.N)
{
// execute code for any other updateYN
}
Это говорит компилятору, что updateYN.ToUpper() не должно быть и не должно быть Н.
EDIT: Для того, чтобы сделать его более понятным, почему ваш, если условие всегда заканчивая, вот несколько объяснений. Представьте себе это утверждение:
если (! Х = 1 || х = 2) { ... }
Вы бы себе представить, что если х 1 или 2, блок не должен быть выполнено, но это будет, потому что это утверждение состоит из двух частей фактически:!
х = 1 х = 2
или часть сообщает компилятор, что если какое-либо из этих условий истинно, то все условие истинно. Очевидно, если x равно 1, то это не 2, поэтому условие выполняется, и то же самое, если оно равно 2. Подумайте обо всех значениях в мире, они не могут быть равны 1 и 2, поэтому этот блок всегда будет выполняться. То же самое с вашим случаем здесь. Надеюсь, что это хорошо объясняет вашу проблему.