Поделиться через


Оператор Not (Visual Basic)

Выполняет логическое отрицание выражения Boolean или побитовое отрицание в числовом выражении.

Синтаксис

result = Not expression  

Детали

result
Обязательный. Любое Boolean или числовое выражение.

expression
Обязательный. Любое Boolean или числовое выражение.

Замечания

Для Boolean выражений в следующей таблице показано, как result определяется.

Если expression имеет значение Значение result равно
True False
False True

Для числовых выражений Not оператор инвертирует битовые значения любого числового выражения и задает соответствующий бит в result соответствии со следующей таблицей.

Если бит включено expression Бит в result
1 0
0 1

Примечание.

Так как логические и битовые операторы имеют более низкий приоритет, чем другие арифметические и реляционные операторы, все побитовые операции должны быть заключены в скобки, чтобы обеспечить точное выполнение.

Обратите внимание, что если Not someStr?.Contains("some string") или какое-либо другое значение, которое оценивается как Boolean? значение nothing или HasValue=falseelse , блок выполняется. Оценка следует оценке SQL, где значение NULL/nothing не равно ничего, а не даже другое значение NULL/nothing.

Типы данных

Для логического отрицания тип данных результата .Boolean Для битового отрицания тип результирующих данных совпадает с expressionтипом данных. Однако если выражение имеет Decimalзначение, результатом является Long.

Перегрузка

Оператор Not может быть перегружен, что означает, что класс или структура могут переопределить его поведение, если его операнда имеет тип этого класса или структуры. Если код использует этот оператор в таком классе или структуре, убедитесь, что вы понимаете его переопределенное поведение. Для получения дополнительной информации см. Operator Procedures.

Пример 1

В следующем примере оператор используется Not для выполнения логического отрицания выражения Boolean . Результатом является Boolean значение, представляющее обратное значение выражения.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = Not (a > b)
secondCheck = Not (b > a)

В предыдущем примере приводятся результаты False соответственно True.

Пример 2

В следующем примере оператор используется Not для выполнения логического отрицания отдельных битов числового выражения. Бит в шаблоне результата имеет значение обратного значения соответствующего бита в шаблоне операнда, включая бит знака.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (Not a)
secondPattern = (Not b)
thirdPattern = (Not c)

В предыдущем примере приводятся результаты 11, –9 и –7 соответственно.

См. также