通用类型转换

.NET Framework 提供以下两种机制来将用户定义数据类型(自定义类型)转换为其他数据类型:

下表重点说明了这两种机制间的差异。

说明说明

只能为已定义了类型转换器的自定义类型提供设计时支持。

使用 TypeConverter 转换

使用 IConvertible 转换

在设计时和运行时都可以使用。

只能在运行时使用。

使用反射,因此比 IConvertible 所支持的转换慢。

不使用反射。

允许自定义类型和其他数据类型间的双向类型转换。例如,为 MyType 定义的 TypeConverter 允许从 MyType 转换为 String,以及从 String 转换为 MyType。

允许从自定义类型转换为其他数据类型,但不允许从其他数据类型转换为自定义类型。

说明说明
类型的 TypeConverter 在类型的外部实现,并通过应用 TypeConverterAttribute 特性与该类型关联。
说明说明
IConvertible 由自定义类型实现。为转换类型,类型的用户对类型调用转换方法(属于 IConvertible 协定)。

有关使用类型转换器执行转换的详细信息,请参见 System.ComponentModel.TypeConverter。有关实现类型转换器为自定义类型提供设计时支持的信息,请参见实现类型转换器

请参见

任务

如何:实现类型转换器

其他资源

扩展设计时支持