Konvertierungsoperator

Definition - Was bedeutet Conversion Operator?

Ein Konvertierungsoperator in C # ist ein Operator, mit dem eine Konvertierung für einen benutzerdefinierten Typ deklariert wird, damit ein Objekt dieses Typs in einen anderen benutzerdefinierten Typ oder Basistyp konvertiert werden kann. Die zwei verschiedenen Arten von benutzerdefinierten Konvertierungen umfassen implizite und explizite Konvertierungen.

Im Allgemeinen bieten explizite und implizite Konvertierungsoperatoren die Möglichkeit, eine Klasse in die anderen möglichen Datentypen umzuwandeln.

Ein expliziter Konvertierungsoperator muss mit einer Umwandlung aufgerufen werden und wird verwendet, wenn die Konvertierung für die Benutzer des Operators sichtbar sein muss. Es wird in Cast-Ausdrücken verwendet, bei denen die beiden Datentypen nicht vollständig kompatibel sind und daher einen Cast-Operator erfordern.

Ein impliziter Konvertierungsoperator ist einfach zu verwenden. Es erfordert keine spezielle Syntax und verbessert die Lesbarkeit des Codes. Es hilft einer Klasse auch dabei, Daten eines Datentyps ohne Typumwandlung in einen kompatiblen Typ zu konvertieren. Implizite Besetzung muss in Situationen wie Aufrufen und Zuweisungen von Funktionsmitgliedern verwendet werden, in denen kein Risiko für Datenverlust oder das Auftreten von Ausnahmen besteht.

Technische.me erklärt den Konvertierungsoperator

Eine implizite Konvertierung kann für eine Klasse definiert werden, indem das Schlüsselwort "implizit" zusammen mit dem Schlüsselwort "operator" verwendet wird. Eine explizite Konvertierungsoperation kann für eine Klasse definiert werden, indem das Schlüsselwort "explizit" zusammen mit dem Schlüsselwort "Operator" verwendet wird. Beide Konvertierungen müssen als statisch definiert werden.

Beispielsweise kann eine Klasse, RomanNumeral, mit zwei Konvertierungsoperatoren definiert werden. Es kann ein impliziter Konvertierungsoperator definiert werden, der von der RomanNumeral-Klasse in eine Zeichenfolge konvertiert wird, um eine Zahl in römischer Zahlenform anzuzeigen. Der explizite Konvertierungsoperator kann definiert werden, um die Konvertierung von der RomanNumeral-Klasse in eine Ganzzahl durchzuführen.

Die Konvertierung einer Klasse in einen Objekttyp oder einen Schnittstellentyp ist nicht zulässig. Gleiches gilt für die Konvertierung von der Basisklasse in eine von der Basisklasse abgeleitete Klasse.

Für eine bestimmte Klasse können nicht sowohl die expliziten als auch die impliziten Operatoren für die Konvertierung von demselben Typ in einen anderen angegeben werden.

Es sollte darauf geachtet werden, dass eine implizite Konvertierung nicht zu Datenverlust oder einer Ausnahme führt. Wenn es gültige Gründe gibt, eine Ausnahme auszulösen, sollte die Konvertierung vom expliziten Typ sein.

Diese Definition wurde im Kontext von C # geschrieben