通用类型转换
.NET Framework 提供以下两种机制来将用户定义数据类型(自定义类型)转换为其他数据类型:
通过扩展 TypeConverter 类为自定义类型定义类型转换器,并通过 TypeConverterAttribute 特性使类型转换器与类型关联。
对自定义类型实现 IConvertible 接口。
下表重点说明了这两种机制间的差异。
备注
只能为已定义了类型转换器的自定义类型提供设计时支持。
使用 TypeConverter 转换 |
使用 IConvertible 转换 |
||||
---|---|---|---|---|---|
在设计时和运行时都可以使用。 |
只能在运行时使用。 |
||||
使用反射,因此比 IConvertible 所支持的转换慢。 |
不使用反射。 |
||||
允许自定义类型和其他数据类型间的双向类型转换。 例如,为 MyType 定义的 TypeConverter 允许从 MyType 转换为 String,以及从 String 转换为 MyType。 |
允许从自定义类型转换为其他数据类型,但不允许从其他数据类型转换为自定义类型。 |
||||
|
|
有关使用类型转换器执行转换的详细信息,请参见 TypeConverter。 有关实现类型转换器为自定义类型提供设计时支持的信息,请参见实现类型转换器。