一般的な型変換
.NET Framework では、ユーザー定義データ型 (カスタム型) を他のデータ型に変換する方法として次の 2 つの方法があります。
TypeConverter クラスを拡張してカスタム型のコンバーターを定義し、TypeConverterAttribute 属性を使用してその型コンバーターを型に関連付ける方法。
カスタム型に IConvertible インターフェイスを実装する方法。
この 2 つの方法の相違点を次の表に示します。
注意
カスタム型に対してデザイン時サポートが有効になるのは、そのカスタム型の型コンバーターが定義されている場合だけです。
TypeConverter を使用した変換 |
IConvertible を使用した変換 |
||||
---|---|---|---|---|---|
デザイン時と実行時に使用できます。 |
実行時だけ使用できます。 |
||||
リフレクションを使用するため、IConvertible での変換よりも処理に時間がかかります。 |
リフレクションを使用しません。 |
||||
カスタム型から他のデータ型への変換と、他のデータ型からカスタム型への変換という双方向の変換が可能です。 たとえば、MyType に定義されている TypeConverter では、MyType から String への変換と、String から MyType への変換を実行できます。 |
カスタム型から他のデータ型への変換は実行できますが、他のデータ型からカスタム型への変換は実行できません。 |
||||
|
|
型コンバーターを使用した変換の詳細については、TypeConverter を参照してください。 カスタム型のデザイン時サポートを提供するための型コンバーターの実装については、「型コンバーターの実装」を参照してください。