Bagikan melalui


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 pengonversi, 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 dideklarasikan.

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($"{nameof(MyProperty)} is not valid");
        }
        // 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)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 konverter yang mengonversi ke dan dari representasi teks. Konverter tipe untuk kelas terikat ke kelas dengan TypeConverterAttribute. Kecuali atribut ini digantikan, semua kelas yang mewarisi dari kelas ini menggunakan pengonversi jenis yang sama dengan kelas dasar.

Nota

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 instans TypeDescriptor dari kode, atau tempat Anda membuat instans bersama di sumber daya WPF, dapat diterima untuk membangunnya secara langsung tanpa merujuk TypeDescriptor atau dukungan sistem pantulan dan jenis lainnya.

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 Anda 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 penelepon tepercaya. Asumsikan bahwa penelepon dapat membuat instans jenis Anda dalam kepercayaan parsial.

Konstruktor

Nama Deskripsi
TypeConverter()

Menginisialisasi instans baru dari kelas TypeConverter.

Metode

Nama Deskripsi
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 jenis yang ditentukan.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Mengonversi objek yang diberikan ke jenis pengonversi ini, menggunakan konteks dan informasi 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 konverter ini, menggunakan budaya invarian.

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 yang invarian budaya, menggunakan konteks yang ditentukan.

ConvertToInvariantString(Object)

Mengonversi nilai yang ditentukan menjadi representasi string yang 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 Object sekumpulan nilai properti yang diberikan untuk objek tersebut.

CreateInstance(ITypeDescriptorContext, IDictionary)

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

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetConvertFromException(Object)

Mengembalikan pengecualian untuk dilemparkan ketika konversi tidak dapat dilakukan.

GetConvertToException(Object, Type)

Mengembalikan pengecualian untuk dilemparkan ketika 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 untuk CreateInstance(IDictionary) membuat nilai baru, menggunakan konteks yang ditentukan.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

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

GetProperties(ITypeDescriptorContext, Object)

Mengembalikan kumpulan properti untuk jenis array yang ditentukan oleh parameter nilai, menggunakan konteks 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 tipe data yang dirancang untuk pengonversi jenis ini.

GetStandardValues(ITypeDescriptorContext)

Mengembalikan kumpulan nilai standar untuk tipe data pengonversi jenis ini dirancang saat 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 dari 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 Type instans 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 jenis ini.

MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

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

Mengurutkan kumpulan properti.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga