Opérateur de conversion

Définition - Que signifie Opérateur de conversion?

Un opérateur de conversion, en C #, est un opérateur utilisé pour déclarer une conversion sur un type défini par l'utilisateur afin qu'un objet de ce type puisse être converti vers ou à partir d'un autre type défini par l'utilisateur ou d'un type de base. Les deux types différents de conversions définies par l'utilisateur incluent les conversions implicites et explicites.

En général, les opérateurs de conversion explicites et implicites permettent à une classe d'être castée vers les autres types de données possibles.

Un opérateur de conversion explicite doit être appelé avec un cast et est utilisé lorsque la conversion doit être visible par les utilisateurs de l'opérateur. Il est utilisé dans les expressions de conversion où les deux types de données ne sont pas entièrement compatibles et nécessitent donc un opérateur de conversion.

Un opérateur de conversion implicite est facile à utiliser. Il ne nécessite pas de syntaxe particulière et améliore la lisibilité du code. Il aide également une classe à convertir les données d'un type de données en son type compatible sans conversion de type. Le cast implicite doit être utilisé dans des situations telles que les invocations et affectations de membres de fonction, où il n'y a aucun risque de perte de données ou d'occurrence d'exceptions.

Definir Tech explique l'opérateur de conversion

Une conversion implicite peut être définie pour une classe en utilisant le mot-clé "implicite" avec le mot-clé "opérateur". Une opération de conversion explicite peut être définie pour une classe en utilisant le mot-clé "explicite" avec le mot-clé "opérateur". Les deux conversions doivent être définies comme statiques.

Par exemple, une classe, RomanNumeral, peut être définie avec deux opérateurs de conversion. Un opérateur de conversion implicite peut être défini pour convertir de la classe RomanNumeral en chaîne pour afficher un nombre sous forme de chiffres romains; l'opérateur de conversion explicite peut être défini pour effectuer la conversion de la classe RomanNumeral en entier.

La conversion d'une classe en type d'objet ou en type d'interface n'est pas autorisée. Il en va de même pour la conversion d'une classe de base en une classe dérivée de la classe de base.

Pour une classe donnée, les opérateurs explicites et implicites ne peuvent pas être spécifiés pour la conversion du même type en un autre.

Il faut veiller à ce qu'une conversion implicite n'entraîne pas de perte de données ou une exception. S'il existe des raisons valables de lever une exception, la conversion doit être de type explicite.

Cette définition a été écrite dans le contexte de C #