產生的型別轉換
.NET Framework 提供下列兩個機制,用以將使用者定義的資料型別 (自訂型別) 轉換為其他資料型別。
延伸 System.ComponentModel.TypeConverter 類別並透過 System.ComponentModel.TypeConverterAttribute 屬性產生型別轉換子與型別之間的關聯,為自訂型別定義型別轉換子。
在自訂型別上實作 System.IConvertible 介面。
下表比對這兩個機制之間的差異。
注意事項 |
---|
只要自訂型別有為其定義的型別轉換子,即會提供設計階段支援給自訂型別。 |
使用 TypeConverter 的轉換 |
使用 IConvertible 的轉換 |
---|---|
可以在設計階段和在執行階段兩處使用。 |
只能在執行階段使用。 |
使用反映 (Reflection);因此,比 IConvertible 所啟用的轉換緩慢。 |
不使用反映。 |
允許從自訂型別到其他資料型別和從其他資料型別到自訂型別的雙向型別轉換。例如,針對 MyType 定義的 TypeConverter 允許從 MyType 轉換到 String 以及從 String 轉換到 MyType。 |
允許從自訂型別到其他資料型別,但不能從其他資料型別到自訂型別的轉換。 |
注意事項
在型別之外實作型別的 TypeConverter,並藉著套用 TypeConverterAttribute 屬性讓 TypeConverter 與型別產生關聯。
|
注意事項
IConvertible 是由自訂型別所實作。若要轉換型別,型別的使用者會叫用 (Invoke) 型別上的轉換方法 (屬於 IConvertible 合約)。
|
如需使用型別轉換子執行轉換的詳細資訊,請參閱 System.ComponentModel.TypeConverter。如需實作型別轉換子以提供設計階段支援給自訂型別的詳細資訊,請參閱實作型別轉換子。