값 형식과 참조 형식
Visual Basic에는 참조 형식과 값 형식의 두 가지 유형이 있습니다. 참조 형식의 변수에는 데이터(개체)에 대한 참조가 저장되며, 값 형식의 변수에는 해당 데이터가 직접 포함됩니다. 참조 형식에서는 두 가지 변수가 같은 개체를 참조할 수 있으므로 한 변수에 대한 작업이 다른 변수에서 참조하는 개체에 영향을 미칠 수 있습니다. 값 형식을 사용하면 각 변수에 고유한 데이터 복사본이 있으며 한 변수에 대한 작업이 다른 변수에 영향을 줄 수 없습니다(매개 변수의 ByRef 한정자의 경우 제외).
값 형식
데이터 형식은 자체 메모리 할당 내에 데이터를 보유하는 경우 값 형식입니다. 값 형식에는 다음이 포함됩니다.
모든 숫자 데이터 형식
Boolean
,Char
및Date
멤버가 참조 형식인 경우에도 모든 구조체
열거형은 기본 형식이 항상
SByte
,Short
,Integer
,Long
,Byte
,UShort
,UInteger
또는ULong
입니다.
모든 구조체는 참조 형식 멤버를 포함하는 경우에도 값 형식입니다. 이러한 이유로 Char
및 Integer
같은 값 형식은 .NET Framework 구조에 의해 구현됩니다.
예약된 키워드(예: Decimal
)를 사용하여 값 형식을 선언할 수 있습니다. New
키워드를 사용하여 값 형식을 초기화할 수도 있습니다. 이는 형식에 매개 변수를 사용하는 생성자가 있는 경우에 특히 유용합니다. 이 예제는 제공된 부분에서 새 Decimal
값을 빌드하는 Decimal(Int32, Int32, Int32, Boolean, Byte) 생성자입니다.
참조 형식
참조 형식은 해당 데이터에 대한 참조를 저장합니다. 참조 형식은 다음과 같습니다.
String
요소가 값 형식인 경우에도 모든 배열
클래스 형식(예: Form)
대리자
클래스는 참조 형식입니다. 멤버가 값 형식인 경우에도 모든 배열은 참조 형식입니다.
모든 참조 형식은 기본 .NET Framework 클래스를 나타내므로 초기화할 때 New Operator 키워드를 사용해야 합니다. 다음 문은 배열을 초기화합니다.
Dim totals() As Single = New Single(8) {}
형식이 아닌 요소
선언된 요소의 데이터 형식으로 지정할 수 없으므로 다음 프로그래밍 요소는 형식으로 한정되지 않습니다.
네임스페이스
모듈
이벤트
속성 및 프로시저
변수, 상수 및 필드
개체 데이터 형식 작업
참조 형식 또는 값 형식을 Object
데이터 형식의 변수에 할당할 수 있습니다. Object
변수는 항상 데이터에 대한 참조를 보유하며 데이터 자체는 보유하지 않습니다. 그러나 값 형식을 Object
변수에 할당하면 자체 데이터를 보유하는 것처럼 동작합니다. 자세한 내용은 개체 데이터 형식을 참조하세요.
Microsoft.VisualBasic 네임스페이스의 Information 클래스에 있는 IsReference 메서드에 전달하여 Object
변수가 참조 형식 또는 값 형식으로 작동하고 있는지 확인할 수 있습니다. Information.IsReference은 Object
변수의 내용이 참조 형식을 나타내는 경우 True
를 반환합니다.
참고 항목
.NET