Table des matières:
Définition - Que signifie Opérateur de conversion?
Un opérateur de conversion, en C #, est un opérateur qui est 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 depuis un autre type défini par l'utilisateur ou 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 convertie en d'autres types de données possibles.
Un opérateur de conversion explicite doit être appelé avec un transtypage et est utilisé lorsque la conversion doit être visible pour les utilisateurs de l'opérateur. Il est utilisé dans les expressions de cast où les deux types de données ne sont pas entièrement compatibles et nécessitent donc un opérateur de cast.
Un opérateur de conversion implicite est facile à utiliser. Il ne nécessite pas de syntaxe spéciale 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 transtypage de type. La conversion implicite doit être utilisée dans des situations telles que les invocations et les affectations de membres de fonction, où il n'y a aucun risque de perte de données ou d'occurrence d'exceptions.
Techopedia 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é "operator". Une opération de conversion explicite peut être définie pour une classe en utilisant le mot-clé "explicite" avec le mot-clé "operator". 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 type d'interface n'est pas autorisée. Il en va de même pour la conversion de la 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 à un autre.
Il faut veiller à ce qu'une conversion implicite n'entraîne pas de perte de données ni d'exception. S'il existe des raisons valables de lever l'exception, la conversion doit être de type explicite.
Cette définition a été écrite dans le contexte de C #