+ 연산자(Visual Basic)

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

구문

expression1 + expression2

또는

+expression1  

부분

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

결과

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

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

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

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

지원 형식

부호 없는 부동 소수점 형식과 Decimal, String를 포함한 모든 숫자 형식.

설명

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

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

식의 데이터 형식 컴파일러별 작업
두 식 모두 숫자 데이터 형식(SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single, Double)입니다. 추가. 결과 데이터 형식은 데이터 형식에 적합한 숫자 형식 expression1expression2입니다. 연산자 결과의 데이터 형식에서 “정수 산술” 테이블을 참조하세요.
두 식 모두 형식 String입니다. 연결.
한 식은 숫자 데이터 형식이고 다른 식은 문자열입니다. Option StrictOn인 경우 컴파일러 오류를 생성합니다.

Option StrictOff인 경우, StringDouble로 암시적으로 변환하여 추가합니다.

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

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

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

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

Option StrictOff인 경우, StringDouble로 암시적으로 변환하여 추가합니다.

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

Option StrictOff인 경우 문자열 ObjectDouble로 암시적으로 변환하고 추가합니다.

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

Option StrictOff인 경우 ObjectString로 암시적으로 변환하여 연결합니다.

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

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

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

Object 식이 Nothing 또는 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 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.

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

참고 항목