Object Data TypeObject Data Type

개체를 참조 하는 주소를 포함 합니다.Holds addresses that refer to objects. Object 변수에 모든 참조 형식 (문자열, 배열, 클래스 또는 인터페이스)을 할당할 수 있습니다.You can assign any reference type (string, array, class, or interface) to an Object variable. 변수 Object 는 모든 값 형식 ( Char숫자, Boolean Date,,, 구조체 또는 열거형)의 데이터를 참조할 수도 있습니다.An Object variable can also refer to data of any value type (numeric, Boolean, Char, Date, structure, or enumeration).

설명Remarks

데이터 Object 형식은 응용 프로그램에서 인식 하는 모든 개체 인스턴스를 포함 하 여 모든 데이터 형식의 데이터를 가리킬 수 있습니다.The Object data type can point to data of any data type, including any object instance your application recognizes. 컴파일 Object 시간에 변수가 가리키는 데이터 형식을 알 수 없는 경우에 사용 합니다.Use Object when you do not know at compile time what data type the variable might point to.

ObjectNothing 기본값은 (null 참조)입니다.The default value of Object is Nothing (a null reference).

데이터 형식Data Types

모든 데이터 형식의 Object 변수, 상수 또는 식을 변수에 할당할 수 있습니다.You can assign a variable, constant, or expression of any data type to an Object variable. Object 변수가 현재 참조 하는 데이터 형식을 확인 하려면 System.Type 클래스의 메서드를 GetTypeCode 사용할 수 있습니다.To determine the data type an Object variable currently refers to, you can use the GetTypeCode method of the System.Type class. 다음은 이에 대한 예입니다.The following example illustrates this.

Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())

Object 데이터 형식이 참조 형식입니다.The Object data type is a reference type. 그러나 Visual Basic는 값 형식의 Object 데이터를 참조할 때 변수를 값 형식으로 처리 합니다.However, Visual Basic treats an Object variable as a value type when it refers to data of a value type.

스토리지Storage

참조 하는 데이터 형식에 관계 없이 Object 변수는 데이터 값 자체를 포함 하지 않고 값에 대 한 포인터를 포함 합니다.Whatever data type it refers to, an Object variable does not contain the data value itself, but rather a pointer to the value. 컴퓨터 메모리에서 항상 4 바이트를 사용 하지만 변수의 값을 나타내는 데이터의 저장소는 포함 하지 않습니다.It always uses four bytes in computer memory, but this does not include the storage for the data representing the value of the variable. 포인터를 사용 하 여 데이터 Object 를 찾는 코드로 인해 값 형식을 포함 하는 변수는 명시적으로 형식화 된 변수에 액세스 하는 속도가 약간 느립니다.Because of the code that uses the pointer to locate the data, Object variables holding value types are slightly slower to access than explicitly typed variables.

프로그래밍 팁Programming Tips

  • Interop 고려 사항Interop Considerations. .NET Framework 용으로 작성 되지 않은 구성 요소 (예: Automation 또는 COM 개체)와 상호 작용 하는 경우 다른 환경의 포인터 형식은 Visual Basic Object 형식과 호환 되지 않는다는 점에 유의 하세요.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that pointer types in other environments are not compatible with the Visual Basic Object type.

  • 성능.Performance. Object 형식을 사용 하 여 선언 하는 변수는 개체에 대 한 참조를 포함할 수 있을 만큼 유연 합니다.A variable you declare with the Object type is flexible enough to contain a reference to any object. 그러나 이러한 변수에 대 한 메서드나 속성을 호출 하면 런타임에 바인딩이 항상 발생 합니다.However, when you invoke a method or property on such a variable, you always incur late binding (at run time). 컴파일 시간에 초기 바인딩을 적용 하 고 성능을 향상 시키려면 특정 클래스 이름을 사용 하 여 변수를 선언 하거나 특정 데이터 형식으로 캐스팅 합니다.To force early binding (at compile time) and better performance, declare the variable with a specific class name, or cast it to the specific data type.

    개체 변수를 선언 하는 경우 일반화 OperatingSystem Object 된 형식 대신 특정 클래스 형식 (예:)을 사용 하십시오.When you declare an object variable, try to use a specific class type, for example OperatingSystem, instead of the generalized Object type. 또한 속성 및 메서드에 액세스할 수 있도록 TextBox Control대신 사용 가능한 가장 구체적인 클래스 (예:)를 사용 해야 합니다.You should also use the most specific class available, such as TextBox instead of Control, so that you can access its properties and methods. 일반적으로 개체 브라우저클래스 목록을 사용 하 여 사용 가능한 클래스 이름을 찾을 수 있습니다.You can usually use the Classes list in the Object Browser to find available class names.

  • 넓혀.Widening. 모든 데이터 형식과 모든 참조 형식은 Object 데이터 형식으로 확장 됩니다.All data types and all reference types widen to the Object data type. 즉, System.OverflowException 오류가 발생 하지 않고 모든 형식을 Object 로 변환할 수 있습니다.This means you can convert any type to Object without encountering a System.OverflowException error.

    그러나 값 형식과 ObjectVisual Basic 사이를 변환 하는 경우 실행 속도가 느려질 수 있도록 boxingunboxing이라는 작업을 수행 합니다.However, if you convert between value types and Object, Visual Basic performs operations called boxing and unboxing, which make execution slower.

  • 문자를 입력 합니다.Type Characters. Object에는 리터럴 형식 문자 또는 식별자 형식 문자가 없습니다.Object has no literal type character or identifier type character.

  • 프레임 워크 형식입니다.Framework Type. .NET Framework에서 해당 하는 형식은 System.Object 클래스입니다.The corresponding type in the .NET Framework is the System.Object class.

예제Example

다음 예제에서는 개체 인스턴스 Object 를 가리키는 변수를 보여 줍니다.The following example illustrates an Object variable pointing to an object instance.

Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)

참고자료See also