TryCast 연산자(Visual Basic)
예외를 throw하지 않는 형식 변환 작업을 소개합니다.
설명
변환 시도가 실패하면 CType
및 DirectCast
둘 다 InvalidCastException 오류를 throw합니다. 이로 인해 애플리케이션의 성능에 부정적인 영향을 줄 수 있습니다. TryCast
는 Nothing을 반환하므로 가능한 예외를 처리할 필요 없이 Nothing
에 대해 반환된 결과만 테스트하면 됩니다.
CType 함수 및 DirectCast 연산자 키워드를 사용하는 것과 동일한 방식으로 TryCast
키워드를 사용합니다. 식을 첫 번째 인수로 제공하고 두 번째 인수로 변환할 형식을 제공합니다. TryCast
는 클래스 또는 인터페이스와 같은 참조 형식에만 적용됩니다. 두 형식 간의 상속 또는 구현 관계가 필요합니다. 즉, 한 형식이 다른 형식에서 상속되거나 구현되어야 합니다.
오류 및 실패
TryCast
는 상속 또는 구현 관계가 없음을 감지하는 경우 컴파일러 오류를 생성합니다. 그러나 컴파일러 오류가 없어도 성공적인 변환이 보장되지는 않습니다. 원하는 변환이 축소되면 런타임에 실패할 수 있습니다. 이 경우 TryCast
는 Nothing을 반환합니다.
변환 키워드
형식 변환 키워드의 비교는 다음과 같습니다.
키워드 | 데이터 형식 | 인수 관계 | 런타임 실패 |
---|---|---|---|
CType Function | 모든 데이터 형식 | 두 데이터 형식 간에 확대 또는 축소 변환을 정의해야 합니다. | InvalidCastException을 throw |
DirectCast 연산자 | 모든 데이터 형식 | 한 형식은 다른 형식에서 상속하거나 구현해야 합니다. | InvalidCastException을 throw |
TryCast |
참조 형식만 | 한 형식은 다른 형식에서 상속하거나 구현해야 합니다. | Nothing을 반환합니다. |
예시
다음 예제에서는 TryCast
를 사용하는 방법을 보여 줍니다.
Function PrintTypeCode(ByVal obj As Object) As String
Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
If objAsConvertible Is Nothing Then
Return obj.ToString() & " does not implement IConvertible"
Else
Return "Type code is " & objAsConvertible.GetTypeCode()
End If
End Function
참고 항목
.NET
피드백
https://aka.ms/ContentUserFeedback을 참조하세요.
출시 예정: 2024년 내내 콘텐츠 피드백 메커니즘인 GitHub 문제를 단계적으로 폐지하고 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은다음에 대한 사용자 의견 제출 및 보기