다음을 통해 공유


유니버설 데이터 형식으로 사용되는 Object(Visual Basic)

Object 데이터 형식은 .NET Framework 및 Visual Basic의 루트 형식입니다. 즉, 다른 모든 데이터 형식 및 개체 형식은 직접 또는 근본적으로 Object 데이터 형식에서 파생됩니다. 또한 기본 형식이나 복합 형식에 관계없이 다른 모든 데이터 형식은 Object로 변환될 수 있습니다.

느슨한 형식화

Object를 유니버설 데이터 형식으로 사용할 수 있습니다. 이러한 방식을 느슨한 형식화라고 합니다. 다음 예제에서는 이러한 방식의 유연성을 보여 줍니다.

Dim v As Object
v = "17"
' v contains the 2-character String value "17".
v = v - 15
' v now contains the Integer value 2.
v = "H" & v
' v now contains the 2-character String value "H2".

포함된 데이터의 종류에 관계없이 Object 변수에 대해 이러한 연산을 수행할 수 있지만 다음 사항을 주의해야 합니다.

  • Object에 대해 산술 연산이나 함수를 수행하는 경우 개체에 숫자 데이터가 있어야 합니다. 그렇지 않으면 런타임 오류가 발생합니다.

  • 문자열을 연결하는 경우 + 연산자 대신 & 연산자를 사용합니다. + 연산자가 피연산자들을 더하거나 연결할 때는 복잡한 규칙이 적용됩니다. 일부 경우에는 + 연산자가 형식 검사와 변환도 수행해야 하므로 성능이 저하됩니다.

Object 변수의 데이터 형식 변경

Object 변수는 모든 데이터 형식을 받을 수 있지만 변수 자체를 다른 데이터 형식으로 변경할 수는 없습니다. 그러나 Object 변수를 Object 변수의 배열로 다시 할당할 수 있습니다. 다음 예제에서는 ReDim 문(Visual Basic)의 올바른 사용 예와 잘못된 사용 예를 보여 줍니다.

' The following statement declares a single Object.
Dim someObj As Object
' The following reallocation is valid only for Object.
ReDim someObj(8)
' The following statement attempts an INVALID change of data type.
ReDim someObj(8) As Double

첫 번째 ReDim 문은 someObj를 Object 형식의 배열로 변경합니다. 이 문은 Object 데이터 형식의 경우에만 유효합니다. 두 번째 ReDim 문은 다른 데이터 형식을 포함하기 때문에 잘못입니다. 별도의 배열을 사용하면 원하는 결과를 얻을 수 있습니다. 다음은 이에 대한 예입니다.

' First allocate a separate array.
Dim someArray(8) As Double
' Then assign the new array to the Object variable.
someObj = someArray

구조체 대신 사용되는 Object

Object 데이터 형식은 여러 다른 형식의 데이터를 저장할 수 있기 때문에 구조체를 사용할 많은 경우에 구조체를 대신하여 Object 배열을 사용할 수 있습니다. Object 배열은 항상 각 요소에 저장된 데이터 형식을 변경할 수 있기 때문에 구조체보다 다소 유연하며 배열을 동적으로 만들 수 있으므로 필요에 따라 크기를 변경할 수 있습니다. 그러나 Object 배열은 동일한 기능을 가진 구조체보다 더 많은 메모리를 사용하며 성능이 더 느립니다.

참고 항목

참조

데이터 형식 요약(Visual Basic)

형식 변환 함수(Visual Basic)

개념

Visual Basic의 형식 없는 프로그래밍

암시적 선언과 명시적 선언(Visual Basic)

Visual Basic의 형식 검사

데이터 형식의 효율적 사용(Visual Basic)

개체 변수 선언(Visual Basic)

개체 변수 할당(Visual Basic)

개체 변수 값(Visual Basic)

기타 리소스

Visual Basic의 형식 변환