TryCast

업데이트: 2007년 11월

예외를 throw하지 않는 형식 변환 연산을 정의합니다.

설명

변환이 실패하면 CType과 DirectCast 모두 InvalidCastException 오류를 throw합니다. 이로 인해 응용 프로그램의 성능이 저하될 수 있습니다. TryCast는 Nothing(Visual Basic)을 반환하므로, 발생 가능한 예외를 처리할 필요는 없고 반환된 결과를 Nothing에 대해 테스트하기만 하면 됩니다.

CType 함수DirectCast 키워드를 사용할 때와 같은 방법으로 TryCast 키워드를 사용합니다. 식을 첫째 인수로 지정하고 변환할 형식을 둘째 인수로 지정합니다. TryCast는 클래스와 인터페이스 같은 참조 형식에만 작동합니다. 이 키워드를 사용하려면 두 형식 사이에 상속 또는 구현 관계가 있어야 합니다. 즉, 한 형식이 다른 형식에서 상속되거나 구현된 경우라야 합니다.

오류 및 실패

TryCast는 상속 또는 구현 관계가 존재하지 않을 경우 컴파일러 오류를 생성합니다. 그러나 컴파일러 오류가 없다고 해서 변환이 반드시 성공적으로 완료되는 것은 아닙니다. 원하는 변환이 축소 변환인 경우에는 런타임에 변환이 실패할 수 있습니다. 그럴 경우 TryCast는 Nothing(Visual Basic)을 반환합니다.

변환 키워드

형식 변환 키워드를 비교한 내용은 다음과 같습니다.

키워드

데이터 형식

인수 관계

런타임 오류

CType 함수

모든 데이터 형식

두 데이터 형식 간에 확대 또는 축소 변환을 정의해야 합니다.

InvalidCastException을 throw합니다.

DirectCast

모든 데이터 형식

한 형식이 다른 형식에서 상속되거나 구현된 경우라야 합니다.

InvalidCastException을 throw합니다.

TryCast

참조 형식만

한 형식이 다른 형식에서 상속되거나 구현된 경우라야 합니다.

Nothing(Visual Basic)을 반환합니다.

예제

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

참고 항목

개념

확대 변환과 축소 변환

암시적 변환과 명시적 변환