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