Ce sujet n'a pas encore été évalué - Évaluez ce sujet

operator (Référence C#)

Utilisez le mot clé operator pour surcharger un opérateur intégré ou fournir une conversion définie par l'utilisateur dans une déclaration de classe ou de structure.

La formulation suivante est une classe extrêmement simplifiée pour les nombres fractionnels. Elle surcharge les opérateurs + et * pour effectuer des additions et des multiplications de fractions, et fournit également un opérateur qui convertit un type fraction en type double.

// cs_keyword_operator.cs
using System;
class Fraction
{
    int num, den;
    public Fraction(int num, int den)
    {
        this.num = num;
        this.den = den;
    }

    // overload operator +
    public static Fraction operator +(Fraction a, Fraction b)
    {
        return new Fraction(a.num * b.den + b.num * a.den,
           a.den * b.den);
    }

    // overload operator *
    public static Fraction operator *(Fraction a, Fraction b)
    {
        return new Fraction(a.num * b.num, a.den * b.den);
    }

    // user-defined conversion from Fraction to double
    public static implicit operator double(Fraction f)
    {
        return (double)f.num / f.den;
    }
}

class Test
{
    static void Main()
    {
        Fraction a = new Fraction(1, 2);
        Fraction b = new Fraction(3, 7);
        Fraction c = new Fraction(2, 3);
        Console.WriteLine((double)(a * b + c));
    }
}

Sortie

 
0.880952380952381

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 7.2.2 Surcharge d'opérateur

  • 7.2.3 Résolution de la surcharge d'opérateur unaire

  • 7.2.4 Résolution de la surcharge d'un opérateur binaire

Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.