Оператор + (Visual Basic)
Добавляет два числа или возвращает положительное значение числового выражения. Можно также использовать для объединения двух строковых выражений.
Синтаксис
expression1 + expression2
or
+expression1
Детали
Термин | Определение |
---|---|
expression1 |
Обязательный. Любое числовое или строковое выражение. |
expression2 |
Требуется, если + оператор не вычисляет отрицательное значение. Любое числовое или строковое выражение. |
Результат
Если expression1
и expression2
оба числовых значения, результатом является их арифметическая сумма.
Если expression2
этот +
оператор отсутствует, оператор является унарным оператором удостоверений для неизменного значения выражения. В этом смысле операция состоит из сохранения знака expression1
, поэтому результат отрицательный, если expression1
отрицательный.
Если expression1
и expression2
оба строки являются строками, результатом является объединение их значений.
Если expression1
и expression2
имеют смешанные типы, действие зависит от их типов, их содержимого и настройки инструкции Option Strict. Дополнительные сведения см. в таблицах в разделе "Примечания".
Поддерживаемые типы
Все числовые типы, включая типы без знака и с плавающей запятой, а Decimal
также String
.
Замечания
Как правило, выполняет арифметическое добавление, если это возможно, и сцепляется только в том случае, +
если оба выражения являются строками.
Если ни такое выражение не является Object
, Visual Basic выполняет следующие действия.
Типы данных выражений | Действие компилятора |
---|---|
Оба выражения — это числовые типы данных (SByte , Short Integer UInteger UShort Byte ULong Decimal Long Single или )Double |
Добавить. Тип результирующих данных — это числовой тип, подходящий для типов expression1 данных и expression2 . См. таблицы "Целочисленное арифметическое" в типах данных результатов оператора. |
Оба выражения имеют тип String |
Объединить. |
Одно выражение является числовым типом данных, а другое — строкой. | Если Option Strict это On так, создайте ошибку компилятора.Если Option Strict есть Off , то неявно преобразуйте String Double его и добавьте.String Если не удается преобразовать Double его, создайте InvalidCastException исключение. |
Одно выражение является числовым типом данных, а другое — Nothing | Добавьте значение, Nothing равное нулю. |
Одно выражение является строкой, а другое — Nothing |
Объединение с Nothing значением "". |
Если одно выражение является выражением Object
, Visual Basic выполняет следующие действия.
Типы данных выражений | Действие компилятора |
---|---|
Object выражение содержит числовое значение, а другое — числовой тип данных. |
Если Option Strict это On так, создайте ошибку компилятора.Если Option Strict есть Off , добавьте. |
Object выражение содержит числовое значение, а другое — тип String |
Если Option Strict это On так, создайте ошибку компилятора.Если Option Strict есть Off , то неявно преобразуйте String Double его и добавьте.String Если не удается преобразовать Double его, создайте InvalidCastException исключение. |
Object выражение содержит строку, а другая — числовый тип данных. |
Если Option Strict это On так, создайте ошибку компилятора.Если Option Strict есть Off , то неявно преобразуйте строку Object Double в и добавьте.Если строка Object не может быть преобразована Double InvalidCastException в, создайте исключение. |
Object выражение содержит строку, а другая — тип String |
Если Option Strict это On так, создайте ошибку компилятора.Если Option Strict значение равноOff , то неявно преобразуется в String и сцепляетсяObject . |
Если оба выражения являются Object
выражениями, Visual Basic выполняет следующие действия (Option Strict Off
только).
Типы данных выражений | Действие компилятора |
---|---|
Оба Object выражения содержат числовые значения |
Добавить. |
Оба Object выражения имеют тип String |
Объединить. |
Одно Object выражение содержит числовое значение, а другое — строку. |
Неявно преобразуйте строку Object в Double и добавьте.Если строка Object не может быть преобразована в числовое значение, создайте InvalidCastException исключение. |
Object
Если любое выражение оценивается как "Нет" или +
DBNullоператор обрабатывает его как String
значение "".
Примечание.
При использовании +
оператора может не быть в состоянии определить, будет ли происходить добавление или объединение строк. &
Используйте оператор для объединения для устранения неоднозначности и предоставления самодокументационного кода.
Перегрузка
Оператор +
может быть перегружен, что означает, что класс или структура могут переопределить его поведение, если операнда имеет тип этого класса или структуры. Если код использует этот оператор в таком классе или структуре, убедитесь, что вы понимаете его переопределенное поведение. Для получения дополнительной информации см. Operator Procedures.
Пример
В следующем примере оператор используется +
для добавления чисел. Если операнды являются числовыми, Visual Basic вычисляет арифметический результат. Арифметический результат представляет сумму двух операндов.
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
Оператор также можно использовать +
для объединения строк. Если операнды являются обеими строками, Visual Basic объединяет их. Результат объединения представляет одну строку, состоящую из содержимого двух операндов, один за другим.
Если операнды имеют смешанные типы, результат зависит от настройки оператора Option Strict. В следующем примере показан результат, когда Option Strict
это On
.
Option Strict On
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
' The preceding statement generates a COMPILER ERROR.
В следующем примере показан результат, когда Option Strict
это Off
.
Option Strict Off
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
' The preceding statement returns 40 after the string in var1 is
' converted to a numeric value. This might be an unexpected result.
' We do not recommend use of Option Strict Off for these operations.
Чтобы устранить неоднозначность, следует использовать &
оператор вместо +
объединения.