상수 및 리터럴 데이터 형식(Visual Basic)
리터럴은 숫자 3 또는 문자열 “Hello”와 같은 변수의 값이나 식의 결과가 아닌 자체로 표현되는 값입니다. 상수는 리터럴을 대신하고 값이 변경될 수 있는 변수와 달리 프로그램 전체에서 동일한 값을 유지하는 의미 있는 이름입니다.
Option Infer이 Off
이고 Option Strict가 On
인 경우 모든 상수를 데이터 형식으로 명시적으로 선언해야 합니다. 다음 예제에서 MyByte
의 데이터 형식은 명시적으로 Byte
데이터 형식으로 선언됩니다.
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Option Infer
이 On
이거나 Option Strict
이 Off
인 경우 As
절을 사용하여 데이터 형식을 지정하지 않고 상수를 선언할 수 있습니다. 컴파일러는 식 형식에서 상수의 형식을 결정합니다. 숫자 정수 리터럴은 기본적으로 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 |
" | (없음) |
참고 항목
.NET