다음을 통해 공유


+ 연산자(Visual Basic)

두 개의 숫자를 추가하거나 숫자 식의 양수 값을 반환합니다. 두 문자열 식을 연결할 수도 있습니다.

문법

expression1 + expression2

또는

+expression1  

부분

기간 정의
expression1 필수 사항입니다. 모든 숫자 또는 문자열 식입니다.
expression2 연산자가 음수 + 값을 계산하지 않는 한 필요합니다. 모든 숫자 또는 문자열 식입니다.

결과

expression2 둘 다 숫자인 경우 expression1 결과는 산술 합계입니다.

없는 + 경우 expression2 연산자는 식의 변경되지 않은 값에 대한 단항 ID 연산자입니다. 이러한 의미에서 연산은 부호 expression1를 유지하는 것으로 구성되므로 음수이면 expression1 결과가 음수입니다.

expression2 두 문자열이 모두인 경우 expression1 결과는 해당 값의 연결입니다.

혼합 형식인 expression2 경우 expression1 수행되는 작업은 해당 형식, 내용 및 Option Strict 문 설정에 따라 달라집니다. 자세한 내용은 "주의"의 표를 참조하세요.

지원되는 형식

부호 없는 부동 소수점 형식과 부동 소수점 형식을 비롯한 모든 숫자 형식 및 DecimalString.

비고

일반적으로 + 가능한 경우 산술 추가를 수행하고 두 식이 모두 문자열인 경우에만 연결합니다.

두 식이 모두 없는 Object경우 Visual Basic은 다음 작업을 수행합니다.

식의 데이터 형식 컴파일러별 작업
두 식 모두 숫자 데이터 형식(SByte,, Byte, Short, IntegerUShort, UInteger, ULongLong, DecimalSingle또는Double)입니다. 추가. 결과 데이터 형식은 데이터 형식에 적합한 숫자 형식 expression1 입니다.expression2 연산자 결과의 데이터 형식에서 "정수 산술" 테이블을 참조하세요.
두 식 모두 형식입니다. String 연결.
한 식은 숫자 데이터 형식이고 다른 식은 문자열입니다. On경우 Option Strict 컴파일러 오류를 생성합니다.

이 경우 Option Strict 암시적으로 변환하여 String 추가합니다Double.Off

String 변환Double할 수 없는 경우 예외를 throw합니다InvalidCastException.
한 식은 숫자 데이터 형식이고 다른 식은 Nothing입니다. Nothing 0으로 값을 지정하여 추가합니다.
한 식은 문자열이고 다른 식은 입니다. Nothing ""로 값을 지정하여 연결 Nothing 합니다.

하나의 식이 식인 Object 경우 Visual Basic은 다음 작업을 수행합니다.

식의 데이터 형식 컴파일러별 작업
Object 식에 숫자 값이 있고 다른 하나는 숫자 데이터 형식입니다. On경우 Option Strict 컴파일러 오류를 생성합니다.

OffOption Strict 추가합니다.
Object 식은 숫자 값을 보유하며 다른 식은 형식입니다. String On경우 Option Strict 컴파일러 오류를 생성합니다.

이 경우 Option Strict 암시적으로 변환하여 String 추가합니다Double.Off

String 변환Double할 수 없는 경우 예외를 throw합니다InvalidCastException.
Object 식에 문자열이 있고 다른 하나는 숫자 데이터 형식입니다. On경우 Option Strict 컴파일러 오류를 생성합니다.

Off경우 Option Strict 문자열 Object 을 암시적으로 변환하고 추가합니다Double.

문자열 Object 을 변환 Double할 수 없는 경우 예외를 throw합니다 InvalidCastException .
Object 식은 문자열을 보유하며 다른 식은 형식입니다. String On경우 Option Strict 컴파일러 오류를 생성합니다.

Off경우 Option Strict 암시적으로 변환 Object 하여 String 연결합니다.

두 식이 모두 식인 Object 경우 Visual Basic은 다음 작업만Option Strict Off 수행합니다.

식의 데이터 형식 컴파일러별 작업
두 식 모두 Object 숫자 값을 보유합니다. 추가.
Object 식 모두 형식입니다. String 연결.
Object 식에는 숫자 값이 있고 다른 식은 문자열을 보유합니다. 문자열 Object 을 암시적으로 변환하고 추가합니다 Double .

문자열 Object 을 숫자 값으로 변환할 수 없는 경우 예외를 throw합니다 InvalidCastException .

Object 식이 Nothing으로 계산되거나 DBNull연산자가 + ""의 값을 사용하여 처리합니다String.

비고

연산자를 + 사용하는 경우 더하기 또는 문자열 연결이 발생할지 여부를 결정하지 못할 수 있습니다. 연결에 연산자를 & 사용하여 모호성을 제거하고 자체 문서화 코드를 제공합니다.

오버로딩

연산자는 +오버로드될 수 있습니다. 즉, 피연산자에 해당 클래스 또는 구조체의 형식이 있는 경우 클래스 또는 구조체가 해당 동작을 다시 정의할 수 있습니다. 코드에서 이러한 클래스 또는 구조체에서 이 연산자를 사용하는 경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 운영자 프로시저를 참조하세요.

예시

다음 예제에서는 연산자를 + 사용하여 숫자를 추가합니다. 피연산자 둘 다 숫자인 경우 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 StrictOn보여 줍니다.

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 StrictOff보여 줍니다.

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.

모호성을 제거하려면 연결 대신 + 연산자를 & 사용해야 합니다.

참고하십시오