다음을 통해 공유


TypeOf 연산자(Visual Basic)

개체 참조 변수를 데이터 형식과 비교합니다.

result = TypeOf objectexpression Is typename

요소

  • result
    반환되는 요소. Boolean 값입니다.

  • objectexpression
    필수 요소. 참조 형식으로 평가되는 임의의 식입니다.

  • typename
    필수 요소. 임의의 데이터 형식 이름입니다.

설명

TypeOf 연산자는 objectexpression의 런타임 형식이 typename과 호환되는지 결정합니다. 호환성은 typename의 형식 범주에 따라 달라집니다. 다음 표에서는 호환성이 결정되는 방식을 보여 줍니다.

typename의 형식 범주

호환성 조건

클래스

objectexpression이 typename 형식이거나 typename에서 상속되는 경우

구조체

objectexpression이 typename 형식인 경우

Interface

objectexpression이 typename을 구현하거나 typename이 구현된 클래스에서 상속되는 경우

objectexpression의 런타임 형식이 호환성 조건에 맞으면 result는 True입니다. 그렇지 않으면 result는 False입니다.

TypeOf는 항상 Is 키워드와 함께 TypeOf...Is 식을 생성하는 데 사용됩니다.

예제

다음 예제에서는 TypeOf...Is 식을 사용하여 여러 가지 데이터 형식에 대한 두 개체 참조 변수의 형식 호환성을 테스트합니다.

Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)

런타임 형식이 Integer인 refInteger 변수는 Integer와 호환되지만 Double과 호환되지 않습니다. 런타임 형식이 Form인 refForm 변수는 해당 형식이 Form이므로 Form과 호환되고, FormControl에서 상속되므로 Control과 호환되고, FormIComponent를 구현하는 Component에서 상속되므로 Component와 호환됩니다. 그러나 refForm은 Label과 호환되지 않습니다.

참고 항목

참조

Is 연산자(Visual Basic)

IsNot 연산자(Visual Basic)

Visual Basic에서의 연산자 우선 순위

기능별 연산자 목록(Visual Basic)

개념

Visual Basic의 비교 연산자

Visual Basic의 연산자 및 식