Оператор 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=false
else
, блок выполняется. Оценка следует оценке 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 соответственно.