Все исторические версии Basic, которые я видел, которые поддерживали побитовые логические операторы с целыми числами, использовали "набор всех битов", то есть -1, в качестве значения для истинных сравнений.Таким образом, если кто-то хочет иметь значение, равное 9, если a == b, или ноль, если нет, можно использовать выражение 9 AND (a=b)
.Хотя оператор ?:
, присутствующий в C, позволяет более четко кодировать такое поведение, использование -1 для «true» имеет больше практических преимуществ, чем недостатков в языке без дискретного логического типа.
Хотя vb.net - это его собственный язык, совершенно отдельный от vb6, есть много кода, который был перенесен с vb6 на vb.net, и может полагаться на тот факт, что операторы сравнения выдают набор всех битов, когда оно истинно.