TypeConverter クラス
アセンブリ: System (system.dll 内)


最も一般的な型コンバータは、テキスト形式への変換と、その逆の変換を行います。クラスの型コンバータは、TypeConverterAttribute を使用してそのクラスに関連付けられます。この属性がオーバーライドされない限り、このクラスから継承されるすべてのクラスは、基本クラスと同じ型コンバータを使用します。
![]() |
---|
型コンバータには直接アクセスしないでください。代わりに、TypeDescriptor を使用して、該当するコンバータにアクセスします。詳細については、コード例を参照してください。 |
-
カスタムの型変換をサポートするには、CanConvertFrom、CanConvertTo、ConvertFrom、および ConvertTo の各メソッドをオーバーライドします。
-
値を変更するためにオブジェクトを再作成する必要がある型を変換するには、CreateInstance メソッドと GetCreateInstanceSupported メソッドをオーバーライドします。
-
プロパティをサポートする型を変換するには、GetProperties メソッドと GetPropertiesSupported メソッドをオーバーライドします。変換対象のクラスにプロパティがない場合に、プロパティを実装する必要があるときは、プロパティ記述子を実装するための基本クラスとして TypeConverter.SimplePropertyDescriptor クラスを使用できます。TypeConverter.SimplePropertyDescriptor から継承する場合は、GetValue メソッドと SetValue メソッドをオーバーライドする必要があります。
-
標準値をサポートする型を変換するには、GetStandardValues、GetStandardValuesExclusive、GetStandardValuesSupported、および IsValid の各メソッドをオーバーライドします。
![]() |
---|
派生型は internal または private としてマークされる場合がありますが、型のインスタンスは TypeDescriptor クラスを使って作成できます。呼び出し元を信頼できることを前提とした、セキュリティで保護されていないコードを記述しないでください。呼び出し元が部分信頼によって型のインスタンスを作成する可能性があることを前提としてください。 |
![]() |
---|
このクラスに適用される HostProtectionAttribute 属性の Resources プロパティの値は、SharedState です。HostProtectionAttribute は、デスクトップ アプリケーション (一般的には、アイコンをダブルクリック、コマンドを入力、またはブラウザに URL を入力して起動するアプリケーション) には影響しません。詳細については、HostProtectionAttribute クラスのトピックまたは「SQL Server プログラミングとホスト保護属性」を参照してください。 |

型コンバータのインスタンスを作成し、そのインスタンスをクラスに関連付けるコード例を次に示します。型コンバータ MyClassConverter を実装するクラスは、TypeConverter クラスから継承する必要があります。
<TypeConverter(GetType(MyClassConverter))> _ Public Class Class1 ' Insert code here. End Class 'MyClass
public: [TypeConverter(Sample::MyClassConverter::typeid)] ref class MyClass { // Insert code here. };
/** @attribute TypeConverter(MyClassConverter.class) */ public class MyClass { // Insert code here. } //MyClass
列挙型のプロパティがある場合は、プロパティを設定する前に列挙値が有効かどうかを確認します。次のコード例では、MyPropertyEnum という名前の列挙体が宣言されていることが必要です。
Public WriteOnly Property MyProperty() As MyPropertyEnum Set ' Checks to see if the value passed is valid. If Not TypeDescriptor.GetConverter(GetType(MyPropertyEnum)).IsValid(value) Then Throw New ArgumentException() End If ' The value is valid. Insert code to set the property. End Set End Property
public MyPropertyEnum MyProperty { set { // Checks to see if the value passed is valid. if (!TypeDescriptor.GetConverter(typeof(MyPropertyEnum)).IsValid(value)) { throw new ArgumentException(); } // The value is valid. Insert code to set the property. } }
public: property MyPropertyEnum MyProperty { void set( MyPropertyEnum value ) { // Checks to see if the value passed is valid. if ( !TypeDescriptor::GetConverter( MyPropertyEnum::typeid )->IsValid( value ) ) { throw gcnew ArgumentException; } // The value is valid. Insert code to set the property. } }
/** @property */ public void set_MyProperty(MyPropertyEnum value) { // Checks to see if the value passed is valid. if (!(TypeDescriptor.GetConverter(MyPropertyEnum.class.ToType()). IsValid(value))) { throw new ArgumentException(); } // The value is valid. Insert code to set the property. } //set_MyProperty
型コンバータは、オブジェクトから文字列への変換にも一般的に使用されます。変数 c に格納されている Color の名前を出力するコード例を次に示します。
Color c = Color::Red; Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
また、次のコード例に示すように、名前から値への変換にも型コンバータを使用できます。
このコード例では、型コンバータを使用して、オブジェクトがサポートする一連の標準値も出力できます。
Dim c As Color For Each c In TypeDescriptor.GetConverter(GetType(Color)).GetStandardValues() Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c)) Next c
foreach(Color c in TypeDescriptor.GetConverter(typeof(Color)).GetStandardValues()) { Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c)); }



Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TypeConverter メンバ
System.ComponentModel 名前空間
TypeConverterAttribute
PropertyDescriptorCollection クラス
TypeConverter.SimplePropertyDescriptor
TypeConverter.StandardValuesCollection
TypeConverter コンストラクタ
アセンブリ: System (system.dll 内)


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TypeConverter メソッド


名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | GetConvertFromException | 変換を実行できなかった場合にスローされる例外を返します。 |
![]() | GetConvertToException | 変換を実行できなかった場合にスローされる例外を返します。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | SortProperties | プロパティのコレクションを並べ替えます。 |

関連項目
TypeConverter クラスSystem.ComponentModel 名前空間
TypeConverterAttribute
PropertyDescriptorCollection クラス
TypeConverter.SimplePropertyDescriptor
TypeConverter.StandardValuesCollection
TypeConverter メンバ
値の型を他の型に変換し、標準値とサブプロパティにアクセスするための統一的な方法を提供します。
TypeConverter データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | GetConvertFromException | 変換を実行できなかった場合にスローされる例外を返します。 |
![]() | GetConvertToException | 変換を実行できなかった場合にスローされる例外を返します。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | SortProperties | プロパティのコレクションを並べ替えます。 |

関連項目
TypeConverter クラスSystem.ComponentModel 名前空間
TypeConverterAttribute
PropertyDescriptorCollection クラス
TypeConverter.SimplePropertyDescriptor
TypeConverter.StandardValuesCollection
- TypeConverterのページへのリンク