다음을 통해 공유


CType 연산자(Visual Basic)

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

Syntax

CType(expression, typename)

부품

expression 유효한 식입니다. 값 expression 이 허용되는 typename범위를 벗어나면 Visual Basic에서 예외를 throw합니다.

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

비고

팁 (조언)

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

  • 형식 변환 함수(예: CByte, CDblCInt 특정 데이터 형식으로 변환)를 수행합니다. 자세한 내용은 형식 변환 함수를 참조하세요.
  • DirectCast 연산자 또는 TryCast 연산자입니다. 이러한 연산자는 한 형식이 다른 형식에서 상속되거나 구현되어야 합니다. 데이터 형식으로 변환할 때보다 성능이 Object 다소 향상 CType 됩니다.

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

변환이 정의 expressiontypename 되지 않은 경우(예: 변환 시) IntegerDateVisual Basic은 컴파일 시간 오류 메시지를 표시합니다.

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

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

변환 키워드

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

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

오버 로드

연산자는 CType 코드 외부에서 정의된 클래스 또는 구조체에서 오버로드될 수도 있습니다. 코드가 이러한 클래스 또는 구조체로 변환되는 경우 해당 연산자의 CType 동작을 이해해야 합니다. 자세한 내용은 운영자 프로시저를 참조하세요.

동적 개체 변환

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

Example

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

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

추가 예제는 암시적 및 명시적 변환을 참조하세요.

참고하십시오