Оператор + (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, ShortIntegerUIntegerUShortByteULongDecimalLongSingleили )Double Добавить. Тип результирующих данных — это числовой тип, подходящий для типов expression1 данных и expression2. См. таблицы "Целочисленное арифметическое" в типах данных результатов оператора.
Оба выражения имеют тип String Объединить.
Одно выражение является числовым типом данных, а другое — строкой. Если Option Strict это Onтак, создайте ошибку компилятора.

Если Option Strict есть Off, то неявно преобразуйте StringDouble его и добавьте.

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, то неявно преобразуйте StringDouble его и добавьте.

String Если не удается преобразовать Doubleего, создайте InvalidCastException исключение.
Object выражение содержит строку, а другая — числовый тип данных. Если Option Strict это Onтак, создайте ошибку компилятора.

Если Option Strict есть Off, то неявно преобразуйте строку ObjectDouble в и добавьте.

Если строка Object не может быть преобразована DoubleInvalidCastException в, создайте исключение.
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.

Чтобы устранить неоднозначность, следует использовать & оператор вместо + объединения.

См. также