CType 함수(Visual Basic)

식을 지정된 데이터 형식, 개체, 구조체, 클래스 또는 인터페이스로 명시적으로 변환한 결과를 반환합니다.

구문

CType(expression, typename)

부분

expression 모든 유효한 식입니다. expression의 값이 typename에서 허용하는 범위를 벗어나면 Visual Basic에서 예외가 throw됩니다.

typenameDim 문의 As 절 내에서 유효한 모든 식, 즉 모든 데이터 형식, 개체, 구조체, 클래스 또는 인터페이스의 이름입니다.

설명

다음 함수를 사용하여 형식 변환을 수행할 수도 있습니다.

  • 특정 데이터 형식으로 변환을 수행하는 CByte, CDblCInt와 같은 형식 변환 함수입니다. 자세한 내용은 형식 변환 함수를 참조하세요.
  • DirectCast 연산자 또는 TryCast 연산자. 이러한 연산자에서는 한 형식이 다른 형식을 상속하거나 구현해야 합니다. Object 데이터 형식으로 변환하거나 그 반대로 변환할 때 CType보다 다소 더 나은 성능을 제공할 수 있습니다.

CType은 인라인으로 컴파일됩니다. 이는 변환 코드가 식을 평가하는 코드의 일부임을 의미합니다. 변환을 수행하기 위해 호출되는 프로시저가 없기 때문에 코드가 더 빠르게 실행되는 경우도 있습니다.

expression에서 typename으로의 변환이 정의되지 않은 경우(예: Integer에서 Date로) Visual Basic은 컴파일 시간 오류 메시지를 표시합니다.

런타임 시 변환이 실패하면 적절한 예외가 throw됩니다. 축소 변환이 실패하면 OverflowException이 가장 일반적인 결과입니다. 변환이 정의되지 않은 경우 InvalidCastException이 throw됩니다. 예를 들어, expressionObject 형식이고 해당 런타임 형식이 typename으로 변환되지 않은 경우 이런 일이 발생할 수 있습니다.

expression 또는 typename의 데이터 형식이 정의한 클래스 또는 구조체인 경우 해당 클래스 또는 구조체에 CType을 변환 연산자로 정의할 수 있습니다. 이로 인해 CType오버로드된 연산자로 작동하게 됩니다. 이렇게 하면 throw될 수 있는 예외를 포함하여 클래스 또는 구조체와의 변환 동작을 제어할 수 있습니다.

변환 키워드

형식 변환 키워드의 비교는 다음과 같습니다.

키워드 데이터 형식 인수 관계 런타임 오류
CType 모든 데이터 형식 확대 또는 축소 변환은 두 데이터 형식 간에 정의되어야 합니다. InvalidCastException throw
DirectCast 연산자 모든 데이터 형식 한 형식은 다른 형식을 상속하거나 구현해야 합니다. InvalidCastException throw
TryCast 참조 형식만 한 형식은 다른 형식을 상속하거나 구현해야 합니다. Nothing 반환

오버로딩

CType 연산자는 코드 외부에 정의된 클래스 또는 구조체에 오버로드될 수도 있습니다. 코드가 이러한 클래스나 구조체로 변환되거나 그 반대로 변환되는 경우 해당 CType 연산자의 동작을 이해해야 합니다. 자세한 내용은 Operator Procedures을 참조하세요.

동적 개체 변환

동적 개체의 형식 변환은 TryConvert 또는 BindConvert 메서드를 사용하는 사용자 정의 동적 변환에 의해 수행됩니다. 동적 개체로 작업하는 경우 CTypeDynamic 메서드를 사용하여 동적 개체를 변환합니다.

예시

다음 예에서는 CType 함수를 사용하여 식을 Single 데이터 형식으로 변환합니다.

Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)

추가 예를 보려면 암시적 및 명시적 변환을 참조하세요.

참고 항목