通用类型转换

更新:2007 年 11 月

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

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

说明:

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

使用 TypeConverter 转换

使用 IConvertible 转换

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

只能在运行时使用。

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

不使用反射。

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

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

说明:

类型的 TypeConverter 在类型的外部实现,并通过应用 TypeConverterAttribute 属性与该类型关联。

说明:

IConvertible 由自定义类型实现。为转换类型,类型的用户对类型调用转换方法(属于 IConvertible 协定)。

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

请参见

任务

如何:实现类型转换器

其他资源

扩展设计时支持