TypeConverter Kelas

Definisi

Menyediakan cara terpadu untuk mengonversi jenis nilai ke jenis lain, serta untuk mengakses nilai standar dan subproperti.

public ref class TypeConverter
public class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeConverter = class
Public Class TypeConverter
Warisan
TypeConverter
Turunan
Atribut

Contoh

Contoh kode berikut menunjukkan cara membuat instans pengonversi jenis dan mengikatnya ke kelas. Kelas yang mengimplementasikan konverter, MyClassConverter, harus mewarisi dari TypeConverter kelas .

public:
   [TypeConverter(Sample::MyClassConverter::typeid)]
   ref class MyClass
   {
      // Insert code here.
   };
[TypeConverter(typeof(MyClassConverter))]
 public class MyClass {
    // Insert code here.
}
<TypeConverter(GetType(MyClassConverter))> _
Public Class Class1
    ' Insert code here.
End Class

Saat Anda memiliki properti yang memiliki enumerasi, periksa untuk melihat apakah nilai enumerasi valid sebelum mengatur properti. Contoh kode berikutnya mengharuskan enumerasi yang disebut MyPropertyEnum telah dinyatakan.

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.
      }
   }
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 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

Penggunaan pengonversi jenis umum lainnya adalah mengonversi objek menjadi string. Contoh kode berikut mencetak nama yang Color disimpan dalam variabel c.

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

Anda juga dapat menggunakan pengonversi jenis untuk mengonversi nilai dari namanya, seperti yang ditunjukkan dalam contoh kode berikutnya.

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

Dalam contoh kode berikut, Anda dapat menggunakan pengonversi jenis untuk mencetak kumpulan nilai standar yang didukung objek.

for each ( Color c in TypeDescriptor::GetConverter( Color::typeid )->GetStandardValues() )
{
   Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
}
foreach(Color c in TypeDescriptor.GetConverter(typeof(Color)).GetStandardValues()) {
    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

Keterangan

Jenis pengonversi yang paling umum adalah pengonversi ke dan dari representasi teks. Pengonversi jenis untuk kelas terikat ke kelas dengan TypeConverterAttribute. Kecuali atribut ini ditimpa, semua kelas yang mewarisi dari kelas ini menggunakan pengonversi jenis yang sama dengan kelas dasar.

Catatan

Untuk tujuan sistem jenis umum, jangan mengakses pengonversi jenis secara langsung. Sebagai gantinya, akses pengonversi yang sesuai dengan menggunakan TypeDescriptor. Untuk informasi selengkapnya, lihat contoh kode yang disediakan.

Namun, saat menggunakan XAML, prosesor XAML mencari secara TypeConverterAttribute langsung, alih-alih melalui TypeDescriptor. Untuk kasus di mana Anda menginginkan TypeDescriptor instans dari kode, atau di mana Anda membuat instans bersama di sumber daya WPF, dapat diterima untuk membangunnya secara langsung tanpa mereferensikan TypeDescriptor atau refleksi lain dan mengetik dukungan sistem.

Kelas yang berasal dari TypeConverter sering dirujuk sebagai bagian dari bagaimana prosesor XAML mengonversi atribut atau nilai teks inisialisasi dari markup (yang secara inheren string) dan menghasilkan objek untuk representasi run-time. Penulis jenis kustom yang ingin mendukung perilaku konversi jenis untuk XAML biasanya mengimplementasikan TypeConverter kelas yang mendukung perilaku unik ConvertFrom mereka sendiri dari string. Perilaku ini memungkinkan konversi jenis dari string yang disediakan sebagai nilai atribut XAML dan menyediakan prosesor XAML dengan dukungan yang diperlukan untuk membuat objek dari string, sehingga objek dapat diproduksi dalam grafik objek yang diurai. Jenis kustom atau anggota jenis kustom ditunjukkan dengan menerapkan TypeConverterAttribute ke definisi, dengan atribut yang mereferensikan implementasi kustom TypeConverter . Untuk informasi selengkapnya, lihat Tipe Pengonversi untuk Gambaran Umum XAML.

Catatan Bagi Inheritor

Warisi dari TypeConverter untuk menerapkan persyaratan konversi Anda sendiri. Saat mewarisi dari kelas ini, Anda dapat mengambil alih metode berikut:

Catatan: Jenis turunan Anda mungkin ditandai sebagai internal atau private, tetapi instans jenis Anda dapat dibuat dengan TypeDescriptor kelas . Jangan menulis kode yang tidak aman dengan mengasumsikan pemanggil tepercaya. Asumsikan bahwa penelepon mungkin membuat instans jenis Anda dalam kepercayaan parsial.

Untuk informasi selengkapnya tentang pengonversi jenis untuk tujuan umum (non-XAML), lihat Cara: Menerapkan Pengonversi Tipe atau Konversi Jenis Umum.

Konstruktor

TypeConverter()

Menginisialisasi instans baru kelas TypeConverter.

Metode

CanConvertFrom(ITypeDescriptorContext, Type)

Mengembalikan apakah pengonversi ini dapat mengonversi objek dari jenis yang diberikan ke jenis pengonversi ini, menggunakan konteks yang ditentukan.

CanConvertFrom(Type)

Mengembalikan apakah pengonversi ini dapat mengonversi objek dari jenis yang diberikan ke tipe pengonversi ini.

CanConvertTo(ITypeDescriptorContext, Type)

Mengembalikan apakah pengonversi ini dapat mengonversi objek ke jenis yang ditentukan, menggunakan konteks yang ditentukan.

CanConvertTo(Type)

Mengembalikan apakah pengonversi ini dapat mengonversi objek ke tipe yang ditentukan.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Mengonversi objek yang diberikan ke tipe pengonversi ini, menggunakan informasi konteks dan budaya yang ditentukan.

ConvertFrom(Object)

Mengonversi nilai yang diberikan ke tipe pengonversi ini.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Mengonversi string yang diberikan ke jenis pengonversi ini, menggunakan budaya invarian dan konteks yang ditentukan.

ConvertFromInvariantString(String)

Mengonversi string yang diberikan ke jenis pengonversi ini, menggunakan budaya invariant.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Mengonversi teks yang diberikan menjadi objek, menggunakan informasi konteks dan budaya yang ditentukan.

ConvertFromString(ITypeDescriptorContext, String)

Mengonversi teks yang diberikan menjadi objek, menggunakan konteks yang ditentukan.

ConvertFromString(String)

Mengonversi teks yang ditentukan menjadi objek.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Mengonversi objek nilai yang diberikan ke jenis yang ditentukan, menggunakan informasi konteks dan budaya yang ditentukan.

ConvertTo(Object, Type)

Mengonversi objek nilai yang diberikan ke jenis yang ditentukan, menggunakan argumen .

ConvertToInvariantString(ITypeDescriptorContext, Object)

Mengonversi nilai yang ditentukan menjadi representasi string invarian budaya, menggunakan konteks yang ditentukan.

ConvertToInvariantString(Object)

Mengonversi nilai yang ditentukan menjadi representasi string invarian budaya.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Mengonversi nilai yang diberikan menjadi representasi string, menggunakan informasi konteks dan budaya yang ditentukan.

ConvertToString(ITypeDescriptorContext, Object)

Mengonversi nilai yang diberikan menjadi representasi string, menggunakan konteks yang diberikan.

ConvertToString(Object)

Mengonversi nilai yang ditentukan menjadi representasi string.

CreateInstance(IDictionary)

Membuat ulang sekumpulan nilai properti yang Object diberikan untuk objek .

CreateInstance(ITypeDescriptorContext, IDictionary)

Membuat instans jenis yang terkait dengan ini TypeConverter , menggunakan konteks yang ditentukan, mengingat sekumpulan nilai properti untuk objek.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetConvertFromException(Object)

Mengembalikan pengecualian untuk dilemparkan saat konversi tidak dapat dilakukan.

GetConvertToException(Object, Type)

Mengembalikan pengecualian untuk dilemparkan saat konversi tidak dapat dilakukan.

GetCreateInstanceSupported()

Mengembalikan apakah mengubah nilai pada objek ini memerlukan panggilan ke CreateInstance(IDictionary) metode untuk membuat nilai baru.

GetCreateInstanceSupported(ITypeDescriptorContext)

Mengembalikan apakah mengubah nilai pada objek ini memerlukan panggilan ke CreateInstance(IDictionary) untuk membuat nilai baru, menggunakan konteks yang ditentukan.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetProperties(ITypeDescriptorContext, Object)

Mengembalikan kumpulan properti untuk jenis array yang ditentukan oleh parameter nilai, menggunakan konteks yang ditentukan.

GetProperties(ITypeDescriptorContext, Object, Attribute[])

Mengembalikan kumpulan properti untuk jenis array yang ditentukan oleh parameter nilai, menggunakan konteks dan atribut yang ditentukan.

GetProperties(Object)

Mengembalikan kumpulan properti untuk jenis array yang ditentukan oleh parameter nilai.

GetPropertiesSupported()

Mengembalikan apakah objek ini mendukung properti.

GetPropertiesSupported(ITypeDescriptorContext)

Mengembalikan apakah objek ini mendukung properti, menggunakan konteks yang ditentukan.

GetStandardValues()

Mengembalikan kumpulan nilai standar dari konteks default untuk jenis data yang dirancang untuk pengonversi jenis ini.

GetStandardValues(ITypeDescriptorContext)

Mengembalikan kumpulan nilai standar untuk tipe data yang dirancang untuk pengonversi jenis ini jika disediakan dengan konteks format.

GetStandardValuesExclusive()

Mengembalikan apakah kumpulan nilai standar yang dikembalikan adalah GetStandardValues() daftar eksklusif.

GetStandardValuesExclusive(ITypeDescriptorContext)

Mengembalikan apakah kumpulan nilai standar yang dikembalikan adalah GetStandardValues() daftar eksklusif kemungkinan nilai, menggunakan konteks yang ditentukan.

GetStandardValuesSupported()

Mengembalikan apakah objek ini mendukung sekumpulan nilai standar yang dapat dipilih dari daftar.

GetStandardValuesSupported(ITypeDescriptorContext)

Mengembalikan apakah objek ini mendukung sekumpulan nilai standar yang dapat dipilih dari daftar, menggunakan konteks yang ditentukan.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsValid(ITypeDescriptorContext, Object)

Mengembalikan apakah objek nilai yang diberikan valid untuk jenis ini dan untuk konteks yang ditentukan.

IsValid(Object)

Mengembalikan apakah objek nilai yang diberikan valid untuk tipe ini.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
SortProperties(PropertyDescriptorCollection, String[])

Mengurutkan kumpulan properti.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga