일반화된 형식 변환

.NET Framework에서는 사용자 정의 데이터 형식(사용자 지정 형식)을 다른 데이터 형식으로 변환하기 위한 다음 두 가지 메커니즘을 제공합니다.

  • TypeConverter 클래스를 확장하고 TypeConverterAttribute 특성을 통해 형식 변환기를 해당 형식과 연결하여 사용자 지정 형식에 대한 형식 변환기를 정의합니다.

  • 사용자 지정 형식에서 IConvertible 인터페이스를 구현합니다.

다음 표에서는 이 두 가지 메커니즘의 차이점을 강조하여 보여 줍니다.

참고

사용자 지정 형식에 대해 형식 변환기가 정의되어 있는 경우에만 사용자 지정 형식에 디자인 타임 지원이 제공될 수 있습니다.

TypeConverter를 사용한 변환

IConvertible를 사용한 변환

디자인 타임 및 런타임 모두에서 사용할 수 있습니다.

런타임에서만 사용할 수 있습니다.

리플렉션을 사용합니다. 따라서 Iconvertible로 활성화된 변환보다 더 느립니다.

리플렉션을 사용하지 않습니다.

사용자 지정 형식에서 다른 데이터 형식으로, 다른 데이터 형식에서 사용자 지정 형식으로의 양방향 형식 변환을 허용합니다. 예를 들어 MyType에 TypeConverter가 정의되어 있으면 MyType에서 String으로 변환하고 String에서 MyType으로 변환할 수 있습니다.

사용자 지정 형식에서 다른 데이터 형식으로의 변환은 허용하지만, 다른 데이터 형식에서 사용자 지정 형식으로의 변환은 허용하지 않습니다.

참고참고

형식에 대한 TypeConverter는 형식 외부에서 구현되며 TypeConverterAttribute 특성을 적용하여 해당 형식과 연결됩니다.

참고참고

IConvertible은 사용자 지정 형식으로 구현됩니다.형식을 변환하려면, 해당 형식의 사용자가 해당 형식에서 IConvertible 계약의 변환 메서드를 호출합니다.

변환을 수행하는 형식 변환기 사용에 대한 자세한 내용은 TypeConverter를 참조하십시오. 사용자 지정 형식의 디자인 타임을 지원하는 형식 변환기 구현에 대한 자세한 내용은 형식 변환기 구현을 참조하십시오.

참고 항목

작업

방법: 형식 변환기 구현

기타 리소스

디자인 타임 지원 확장