Verallgemeinerte Typkonvertierung
.NET Framework stellt die beiden folgenden Mechanismen zum Konvertieren von benutzerdefinierten Datentypen in andere Datentypen zur Verfügung:
Definition eines Typkonverters für einen benutzerdefinierten Typ durch Erweitern der System.ComponentModel.TypeConverter-Klasse und Verbinden des Typkonverters mit dem Typ über das System.ComponentModel.TypeConverterAttribute-Attribut.
Das Implementieren der System.IConvertible-Schnittstelle auf einem benutzerdefinierten Typ.
Folgende Tabelle hebt die Unterschiede zwischen diesen beiden Mechanismen hervor.
Tipp
Entwurfszeitunterstützung steht für einen benutzerdefinierten Typ nur zur Verfügung, wenn dieser über einen für ihn definierten Typkonverter verfügt.
Konvertierung mit TypeConverter |
Konvertierung mit IConvertible |
---|---|
Kann sowohl zur Entwurfszeit als auch zur Laufzeit verwendet werden. |
Kann nur zur Laufzeit verwendet werden. |
Verwendet Reflektion und ist daher langsamer als die Konvertierung mit IConvertible. |
Verwendet keine Reflektion. |
Ermöglicht bidirektionale Typkonvertierungen von benutzerdefinierten Typen in andere Datentypen und umgekehrt. Ein Beispiel: Ein für MyType definierter TypeConverter ermöglicht die Konvertierung von MyType in String und von String in MyType. |
Ermöglicht die Konvertierung von benutzerdefinierten Typen in andere Datentypen, jedoch nicht in umgekehrter Richtung. |
Hinweis
Ein TypeConverter für einen Typ wird außerhalb des Typs implementiert und mit dem Typ durch Anwenden eines TypeConverterAttribute-Attributs verbunden.
|
Hinweis
IConvertible wird über einen benutzerdefinierten Typ implementiert.Um einen Typ zu konvertieren, muss ein Benutzer des Typs eine Konvertierungsmethode (des IConvertible-Vertrags) für diesen Typ aufrufen.
|
Details über das Verwenden von Typkonvertern zum Durchführen von Konvertierungen finden Sie unter System.ComponentModel.TypeConverter. Informationen über das Implementieren eines Typkonverters für die Bereitstellung von Entwurfszeitunterstützung für einen benutzerdefinierten Typ finden Sie unter Implementieren eines Typkonverters.
Siehe auch
Aufgaben
Gewusst wie: Implementieren eines Typkonverters