Partager via


implicit (Référence C#)

Mise à jour : novembre 2007

Le mot clé implicit est utilisé pour déclarer un opérateur de conversion implicite défini par l'utilisateur. Utilisez-le pour permettre les conversions implicites entre un type défini par l'utilisateur et un autre type, s'il est garanti que la conversion ne provoquera pas de perte de données.

Exemple

    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();
        }
    }
}

En éliminant des conversions superflues, les conversions implicites permettent d'améliorer la lisibilité du code source. Toutefois, comme les conversions implicites ne requièrent pas que les programmeurs effectuent explicitement un cast d'un type vers l'autre, il faut prendre soin d'empêcher les résultats inattendus. En général, les opérateurs de conversion implicite ne devraient jamais lever d'exceptions et ne jamais perdre d'informations, afin qu'elles soient utilisées de façon sûre sans que le programmeur ait à intervenir. Si un opérateur de conversion ne répond pas à ces critères, il doit être marqué comme explicit. Pour plus d'informations, consultez Utilisation d'opérateurs de conversion.

Spécification du langage C#

Pour plus d'informations, consultez la section suivante dans Spécifications du langage C#.

  • 6.1 Conversions implicites

  • 10.9.3 Opérateurs de conversion

Voir aussi

Tâches

Comment : implémenter des conversions définies par l'utilisateur entre des structs (Guide de programmation C#)

Concepts

Guide de programmation C#

Référence

Mots clés C#

explicit (Référence C#)

operator (Référence C#)

Autres ressources

Référence C#