상수 및 리터럴 데이터 형식
업데이트: 2007년 11월
리터럴은 변수의 값이나 식의 결과로 표현되는 것이 아니라 숫자 3이나 문자열 "Hello"와 같이 있는 그대로 표현되는 값입니다. 상수는 리터럴 대신 사용되어 프로그램 전체에서 이 동일한 값을 유지하는 의미 있는 이름으로, 변수와 달리 값을 변경할 수 있습니다.
Option Strict가 On인 경우 모든 상수를 데이터 형식을 사용하여 명시적으로 선언해야 합니다. 다음 예제에서는 MyByte의 데이터 형식이 Byte 데이터 형식으로 명시적으로 선언되었습니다.
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
데이터 형식을 명시적으로 선언하는 것은 명백하며 형식 있는 코드는 형식 없는 코드보다 읽고 유지 관리하기가 쉽습니다. 그러나 Option Strict가 Off이면 컴파일러에서는 상수를 초기화하는 데 사용된 식의 형식을 사용합니다. 숫자 정수 리터럴은 기본적으로 Integer 데이터 형식으로 캐스팅됩니다. 부동 소수점 숫자의 기본 데이터 형식은 Double이고 True 및 False 키워드는 Boolean 상수를 지정합니다.
리터럴 및 형식 강제 변환
경우에 따라 특정 데이터 형식에 리터럴을 강제로 적용할 수도 있습니다. 예를 들어, 매우 큰 정수 리터럴 값을 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 |
" |
(없음) |