TypeConverter クラスとは? わかりやすく解説

TypeConverter クラス

値の型を他の型に変換し標準値とサブプロパティにアクセスするための統一的な方法提供します

名前空間: System.ComponentModel
アセンブリ: System (system.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public Class TypeConverter
Dim instance As TypeConverter
[ComVisibleAttribute(true)] 
public class TypeConverter
[ComVisibleAttribute(true)] 
public ref class TypeConverter
/** @attribute ComVisibleAttribute(true) */ 
public class TypeConverter
ComVisibleAttribute(true) 
public class TypeConverter
解説解説

最も一般的な型コンバータは、テキスト形式への変換と、その逆の変換行いますクラスの型コンバータは、TypeConverterAttribute を使用してそのクラス関連付けられます。この属性オーバーライドされない限り、このクラスから継承されるすべてのクラスは、基本クラスと同じ型コンバータ使用します

メモメモ

コンバータには直接アクセスしないでください代わりに、TypeDescriptor を使用して該当するコンバータアクセスます。詳細については、コード例参照してください

継承時の注意 独自の変換要件実装するには、TypeConverter から継承します。このクラスから継承する場合は、次のメソッドオーバーライドできます

メモメモ

派生型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

[TypeConverter(typeof(MyClassConverter))]
 public class MyClass {
    // Insert code here.
}
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 の名前を出力するコード例次に示します

Dim c As Color = Color.Red
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))
Color c = Color.Red;
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
Color c = Color::Red;
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
Color c = Color.get_Red();
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));

また、次のコード例に示すように、名前から値への変換にも型コンバータ使用できます

Dim c As Color = CType(TypeDescriptor.GetConverter(GetType(Color)).ConvertFromString("Red"),
 Color)
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");
Color c =  (Color)(TypeDescriptor::GetConverter( Color::typeid )->ConvertFromString(
 "Red" ));
Color c = (Color)(TypeDescriptor.GetConverter(Color.class.ToType()).
    ConvertFromString("Red"));

このコード例では、型コンバータ使用してオブジェクトサポートする一連の標準値出力できます

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));
 }
for each ( Color c in TypeDescriptor::GetConverter(
 Color::typeid )->GetStandardValues() )
{
   Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c )
 );
}
IEnumerator e = TypeDescriptor.GetConverter(Color.class.ToType()).
    GetStandardValues().GetEnumerator();
while (e.MoveNext()) {
    Color c = (Color)e.get_Current();
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
}
継承階層継承階層
System.Object
  System.ComponentModel.TypeConverter
     派生クラス
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
TypeConverter メンバ
System.ComponentModel 名前空間
TypeConverterAttribute
PropertyDescriptorCollection クラス
TypeConverter.SimplePropertyDescriptor
TypeConverter.StandardValuesCollection


このページでは「.NET Framework クラス ライブラリ リファレンス」からTypeConverter クラスを検索した結果を表示しています。
Weblioに収録されているすべての辞書からTypeConverter クラスを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からTypeConverter クラス を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「TypeConverter クラス」の関連用語

TypeConverter クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



TypeConverter クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS