Обобщенное преобразование типов
Для преобразования определенных пользователем типов данных (настраиваемых типов) в другие типы данных платформа .NET Framework предоставляет два указанных ниже способа:
определение преобразователя типов для настраиваемого типа путем расширения класса System.ComponentModel.TypeConverter и сопоставления преобразователя с типом через атрибут System.ComponentModel.TypeConverterAttribute;
реализация интерфейса System.IConvertible для настраиваемого типа.
Различия между этими двумя механизмами представлены в следующей таблице.
Примечание
Поддержка во время разработки может быть предоставлена для настраиваемого типа лишь при условии, что для него определен преобразователь типа.
Преобразование с использованием TypeConverter |
Преобразование с использованием IConvertible |
---|---|
Может использоваться как во время разработки, так и во время выполнения. |
Может использоваться только во время выполнения. |
Использует отражение, поэтому выполняется медленнее преобразования, использующего IConvertible. |
Не использует отражения. |
Обеспечивает двустороннее преобразование настраиваемого типа в другие типы данных и наоборот. Например, TypeConverter, определенный для типа MyType, позволяет осуществлять преобразования из MyType в String и из String в MyType. |
Обеспечивает преобразование из настраиваемого типа в другие типы данных, но не наоборот. |
Примечание
TypeConverter типа реализуется вне типа и сопоставляется с ним с помощью атрибута TypeConverterAttribute.
|
Примечание
IConvertible реализуется настраиваемым типом.Для преобразования типа пользователь должен вызвать для этого типа метод преобразования (контракта интерфейса IConvertible).
|
Подробные сведения о выполнении преобразований с помощью преобразователей типов см. в разделе System.ComponentModel.TypeConverter. Сведения о реализации преобразователя типов с целью предоставления поддержки во время разработки для пользовательского типа см. в разделе Реализация преобразователя типов.
См. также
Задачи
Практическое руководство. Реализация преобразователя типов