일반화된 형식 변환
.NET Framework에서는 사용자 정의 데이터 형식(사용자 지정 형식)을 다른 데이터 형식으로 변환하기 위한 다음 두 가지 메커니즘을 제공합니다.
System.ComponentModel.TypeConverter 클래스를 확장하고 System.ComponentModel.TypeConverterAttribute 특성을 통해 형식 변환기를 해당 형식과 연결하여 사용자 지정 형식에 대한 형식 변환기를 정의합니다.
사용자 지정 형식에서 System.IConvertible 인터페이스를 구현합니다.
다음 표에서는 이 두 가지 메커니즘의 차이점을 강조하여 보여 줍니다.
[!참고]
사용자 지정 형식에 대해 형식 변환기가 정의되어 있는 경우에만 사용자 지정 형식에 디자인 타임 지원이 제공될 수 있습니다.
TypeConverter를 사용한 변환 |
IConvertible를 사용한 변환 |
---|---|
디자인 타임 및 런타임 모두에서 사용할 수 있습니다. |
런타임에서만 사용할 수 있습니다. |
리플렉션을 사용합니다. 따라서 Iconvertible로 활성화된 변환보다 더 느립니다. |
리플렉션을 사용하지 않습니다. |
사용자 지정 형식에서 다른 데이터 형식으로, 다른 데이터 형식에서 사용자 지정 형식으로의 양방향 형식 변환을 허용합니다.예를 들어 MyType에 TypeConverter가 정의되어 있으면 MyType에서 String으로 변환하고 String에서 MyType으로 변환할 수 있습니다. |
사용자 지정 형식에서 다른 데이터 형식으로의 변환은 허용하지만, 다른 데이터 형식에서 사용자 지정 형식으로의 변환은 허용하지 않습니다. |
참고
형식에 대한 TypeConverter는 형식 외부에서 구현되며 TypeConverterAttribute 특성을 적용하여 해당 형식과 연결됩니다.
|
참고
IConvertible은 사용자 지정 형식으로 구현됩니다.형식을 변환하려면, 해당 형식의 사용자가 해당 형식에서 IConvertible 계약의 변환 메서드를 호출합니다.
|
변환을 수행하는 형식 변환기 사용에 대한 자세한 내용은 System.ComponentModel.TypeConverter를 참조하십시오.사용자 지정 형식의 디자인 타임을 지원하는 형식 변환기 구현에 대한 자세한 내용은 형식 변환기 구현을 참조하십시오.