Freigeben über


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 TypeConverter-Klasse und Verbinden des Typkonverters mit dem Typ über das TypeConverterAttribute-Attribut.

  • Das Implementieren der IConvertible-Schnittstelle auf einem benutzerdefinierten Typ.

Folgende Tabelle hebt die Unterschiede zwischen diesen beiden Mechanismen hervor.

Hinweis

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.

HinweisHinweis

Ein TypeConverter für einen Typ wird außerhalb des Typs implementiert und mit dem Typ durch Anwenden eines TypeConverterAttribute-Attributs verbunden.

HinweisHinweis

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

Weitere Ressourcen

Erweitern der Entwurfszeitunterstützung