TypeOf 연산자(Visual Basic)
식의 결과가 런타임 형식이 지정된 형식과 호환되는지 여부를 확인합니다.
구문
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
부분
result
반환됨. Boolean
값입니다.
objectexpression
필수입니다. 참조 형식으로 계산되는 모든 식입니다.
typename
필수입니다. 모든 데이터 형식 이름입니다.
설명
TypeOf
연산자는 objectexpression
의 런타임 형식이 typename
과 호환되는지 여부를 결정합니다. 호환성은 typename
의 형식 범주에 따라 달라집니다. 다음 표에서 호환성이 결정되는 방법을 보여 줍니다.
typename 의 형식 범주 |
호환성 조건 |
---|---|
클래스 | objectexpression 이 typename 형식이거나 typename 에서 상속됩니다. |
구조체 | objectexpression 이 typename 형식입니다. |
인터페이스 | objectexpression 이 typename 을 구현하거나 typename 을 구현하는 클래스에서 상속됩니다. |
objectexpression
의 런타임 형식이 호환성 조건을 충족하면 result
가 True
이고, 그렇지 않으면 result
가 False
입니다. objectexpression
이 null이면 TypeOf
...Is
는 False
를 반환하고 ...IsNot
은 True
를 반환합니다.
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과 호환되고, Form이 Control에서 상속되기 때문에 Control과 호환되며, Form이 IComponent를 구현하는 Component에서 상속되기 때문에 IComponent와 호환됩니다. 그러나 refForm
은 Label과 호환되지 않습니다.
참고 항목
.NET