Operador de conversión

Definición: ¿Qué significa Operador de conversión?

Un operador de conversión, en C #, es un operador que se usa para declarar una conversión en un tipo definido por el usuario para que un objeto de ese tipo pueda convertirse ao desde otro tipo definido por el usuario o tipo básico. Los dos tipos diferentes de conversiones definidas por el usuario incluyen conversiones implícitas y explícitas.

En general, los operadores de conversión explícitos e implícitos brindan la capacidad a una clase de convertirse a los otros tipos de datos posibles.

Un operador de conversión explícito debe invocarse con una conversión y se usa cuando la conversión debe ser visible para los usuarios del operador. Se utiliza en expresiones de conversión donde los dos tipos de datos no son totalmente compatibles y, por lo tanto, requieren un operador de conversión.

Un operador de conversión implícito es fácil de usar. No requiere una sintaxis especial y mejora la legibilidad del código. También ayuda a una clase a convertir datos de un tipo de datos a su tipo compatible sin conversión de tipos. La conversión implícita debe usarse en situaciones como las invocaciones y asignaciones de miembros de funciones, donde no hay riesgo de pérdida de datos o la ocurrencia de excepciones.

Techinfo explica el operador de conversión

Se puede definir una conversión implícita para una clase utilizando la palabra clave "implícita" junto con la palabra clave "operador". Se puede definir una operación de conversión explícita para una clase utilizando la palabra clave "explícito" junto con la palabra clave "operador". Ambas conversiones deben definirse como estáticas.

Por ejemplo, una clase, RomanNumeral, se puede definir con dos operadores de conversión. Se puede definir un operador de conversión implícito para convertir de la clase RomanNumeral a una cadena para mostrar un número en forma de números romanos; el operador de conversión explícito se puede definir para realizar la conversión de la clase RomanNumeral a un entero.

No se permite la conversión de una clase a tipo de objeto o tipo de interfaz. Lo mismo ocurre con la conversión de la clase base a una clase derivada de la clase base.

Para una clase dada, los operadores explícitos e implícitos no se pueden especificar para la conversión del mismo tipo a otro.

Se debe tener cuidado para asegurar que una conversión implícita no resulte en una pérdida de datos o una excepción. Si hay razones válidas para lanzar una excepción, la conversión debe ser de tipo explícito.

Esta definición se escribió en el contexto de C #