상수 및 리터럴 데이터 형식(Visual Basic)

리터럴은 숫자 3 또는 문자열 “Hello”와 같은 변수의 값이나 식의 결과가 아닌 자체로 표현되는 값입니다. 상수는 리터럴을 대신하고 값이 변경될 수 있는 변수와 달리 프로그램 전체에서 동일한 값을 유지하는 의미 있는 이름입니다.

Option InferOff이고 Option StrictOn인 경우 모든 상수를 데이터 형식으로 명시적으로 선언해야 합니다. 다음 예제에서 MyByte의 데이터 형식은 명시적으로 Byte 데이터 형식으로 선언됩니다.

Option Strict On

Public Class Sample
  Public Const MyByte As Byte = 2
End Class

Option InferOn이거나 Option StrictOff인 경우 As 절을 사용하여 데이터 형식을 지정하지 않고 상수를 선언할 수 있습니다. 컴파일러는 식 형식에서 상수의 형식을 결정합니다. 숫자 정수 리터럴은 기본적으로 Integer 데이터 형식으로 캐스팅됩니다. 부동 소수점 숫자의 기본 데이터 형식은 Double이며 키워드 TrueFalseBoolean 상수를 지정합니다.

리터럴 및 형식 강제 변환

경우에 따라 리터럴을 특정 데이터 형식으로 강제 적용하려고 할 수 있습니다. 예를 들어 특히 큰 정수 계열 리터럴 값을 Decimal 형식의 변수에 할당하는 경우입니다. 다음 예에서는 오류가 발생합니다.

Dim myDecimal as Decimal  
myDecimal = 100000000000000000000   ' This causes a compiler error.  

오류는 리터럴의 표현으로 인해 발생합니다. Decimal 데이터 형식은 이 큰 값을 보유할 수 있지만 리터럴은 암시적으로 Long로 표시되므로 이 값을 보유할 수 없습니다.

형식 문자를 추가하거나 바깥쪽 문자 내에 리터럴을 배치하는 두 가지 방법으로 특정 데이터 형식으로 강제 변환할 수 있습니다. 형식 문자 또는 바깥쪽 문자는 리터럴 바로 앞에 오거나 뒤에 따라야 하며 중간 공백이나 문자는 없어야 합니다.

이전 예제가 작동하도록 하려면 D 형식 문자를 리터럴에 추가하여 다음과 같이 Decimal로 표시할 수 있습니다.

Dim MyDecimal As Decimal = 100000000000000000000D

다음 예제에서는 문자 형식과 바깥쪽 문자를 올바르게 사용하는 방법을 보여 줍니다.

' Default to Integer.
Public Const DefaultInteger As Integer = 100

' Default to Double.
Public Const DefaultDouble As Double = 54.3345612

' Force constant to be type Char.
Public Const MyCharacter As Char = "a"c

' DateTime constants.
Public Const MyDate As DateTime = #1/15/2001#
Public Const MyTime As DateTime = #1:15:59 AM#

' Force data type to be Long.
Public Const MyLong As Long = 45L

' Force data type to be Single.
Public Const MySingle As Single = 45.55!

다음 표에서는 Visual Basic에서 사용할 수 있는 바깥쪽 문자와 형식 문자를 보여줍니다.

데이터 형식 문자 묶기 추가된 형식 문자
Boolean (없음) (없음)
Byte (없음) (없음)
Char " C
Date # (없음)
Decimal (없음) D 또는 @
Double (없음) R 또는 #
Integer (없음) I 또는 %
Long (없음) L 또는 &
Short (없음) S
Single (없음) F 또는 !
String " (없음)

참고 항목