implicit (Referencia de C#)

Actualización: noviembre 2007

La palabra clave implicit se utiliza para declarar un operador de conversión de tipo implícito definido por el usuario. Utilícela para permitir conversiones implícitas entre un tipo definido por el usuario y otro tipo, si existen garantías de que la conversión no provocará la pérdida de datos.

Ejemplo

    class Digit
    {
        public Digit(double d) { val = d; }
        public double val;
        // ...other members

        // User-defined conversion from Digit to double
        public static implicit operator double(Digit d)
        {
            return d.val;
        }
        //  User-defined conversion from double to Digit
        public static implicit operator Digit(double d)
        {
            return new Digit(d);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Digit dig = new Digit(7);
            //This call invokes the implicit "double" operator
            double num = dig;
            //This call invokes the implicit "Digit" operator
            Digit dig2 = 12;
            Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
            Console.ReadLine();
        }
    }
}

Si se eliminan las conversiones de tipo explícitas innecesarias y se utilizan conversiones implícitas, la legibilidad del código mejora. Sin embargo, como las conversiones implícitas no requieren que los programadores conviertan explícitamente un tipo en otro, deben tomarse las medidas adecuadas para impedir que se produzcan resultados imprevistos. En general, los operadores de conversión implícita nunca deberían producir excepciones ni pérdida de información, de modo que puedan utilizarse de forma segura sin intervención del programador. Si un operador de conversión no cumple esos criterios, debería marcarse como explicit. Para obtener más información, vea Utilizar operadores de conversión (Guía de programación de C#).

Especificación del lenguaje C#

Para obtener más información, vea la siguiente sección de Especificación del lenguaje C#.

  • 6.1 Conversiones implícitas

  • 10.9.3 Operadores de conversión

Vea también

Tareas

Cómo: Implementar conversiones entre estructuras definidas por el usuario (Guía de programación de C#)

Conceptos

Guía de programación de C#

Referencia

Palabras clave de C#

explicit (Referencia de C#)

operator (Referencia de C#)

Otros recursos

Referencia de C#