TypeOf 연산자(Visual Basic)

식의 결과가 런타임 형식이 지정된 형식과 호환되는지 여부를 확인합니다.

구문

result = TypeOf objectexpression Is typename  
result = TypeOf objectexpression IsNot typename  

부분

result
반환됨. Boolean 값입니다.

objectexpression
필수입니다. 참조 형식으로 계산되는 모든 식입니다.

typename
필수입니다. 모든 데이터 형식 이름입니다.

설명

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

typename의 형식 범주 호환성 조건
클래스 objectexpressiontypename 형식이거나 typename에서 상속됩니다.
구조체 objectexpressiontypename 형식입니다.
인터페이스 objectexpressiontypename을 구현하거나 typename을 구현하는 클래스에서 상속됩니다.

objectexpression의 런타임 형식이 호환성 조건을 충족하면 resultTrue이고, 그렇지 않으면 resultFalse입니다. objectexpression이 null이면 TypeOf...IsFalse를 반환하고 ...IsNotTrue를 반환합니다.

TypeOf는 항상 Is 키워드와 함께 사용되어 TypeOf...Is 식을 생성하거나 IsNot 키워드와 함께 사용되어 TypeOf...IsNot 식을 생성합니다.

예시

다음 예제에서는 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)

refInteger 변수에 Integer의 런타임 형식이 있습니다. 이 변수는 Integer와 호환되지만 Double과는 호환되지 않습니다. refForm 변수에 Form의 런타임 형식이 있습니다. 이 변수는 해당 형식이기 때문에 Form과 호환되고, FormControl에서 상속되기 때문에 Control과 호환되며, FormIComponent를 구현하는 Component에서 상속되기 때문에 IComponent와 호환됩니다. 그러나 refFormLabel과 호환되지 않습니다.

참고 항목