@ Oded "L - наверное, это потому, что VB6 / VBA ведут себя так, и разработчики привыкли к этим языкам в своей счастливой зоне. - Oded 2 дня назад"
На самом деле, я понимаю ситуацию так, что Visual Basic 6.0 и VBA были в разногласии с остальным сообществом программистов в их обработке логических выражений, в том что для этих двух языков -1 = true. Переход к «любому значению, отличному от 0 = true», был сделан для обратной совместимости.
Я считаю, что для большей части мира важным оператором является 0 = false. Любое значение, отличное от 0, принимает значение true.
Хотя во многих случаях я держу пари, что стандарты таковы, что 0 = ложь и 1 = истина. Когда Microsoft занималась разработкой VB.NET, им нужно было сохранять обратную совместимость для удержания -1 = true из Visual Basic 6.0 / VBA. Таким образом, они пошли с True = <> 0. Таким образом, 1 или -1 будет принимать значение true. Это кажется более понятным для реализации, чем более сложный условный оператор, который охватывает оба случая: 1 или -1. То, с чем они приземлились, по сути, является прямой проверкой оценки любого значения, отличного от 0.
Если подумать, это также согласуется с базовыми двоичными понятиями. Переключатель включен (некоторое значение, кроме 0) или выключен (значение ноль).