Оператор 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 |
Примечание
Поскольку логические и битовые операторы имеют более низкий приоритет по сравнению с другими арифметическими и сравнительными операторами, битовые операции следует заключать в круглые скобки, чтобы обеспечить правильное выполнение.
Типы данных
Для логического отрицания тип данных результата является Boolean. Для поразрядного отрицания тип данных результата совпадает с expression. Однако если выражение является Decimal, результатом является Long.
Перегрузка
Оператор Not может быть перегруженным, это означает, что класс или структура может переопределить его поведение, если его операнд имеет тип этого класса или структуры. Если в коде используется этот оператор для такого класса или структуры, убедитесь, что его переопределенное поведение вам понятно. Дополнительные сведения см. в разделе Процедуры операторов (Visual Basic).
Пример
Следующий пример использует оператор 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 соответственно.
В следующем примере оператор 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 соответственно.
См. также
Ссылки
Логические (побитовые) операторы (Visual Basic)
Порядок применения операторов в Visual Basic
Список операторов, сгруппированных по функциональному назначению (Visual Basic)