// Surcharge d'opérateur en C# (http://www.coacoacoa.net/mai02/complex.txt) // Basé sur un code de c2i.fr (http://www.c2i.fr/code.aspx?IDCode=371) using System; public class Complex { private double _a; private double _b; //Contructeurs public Complex() {} public Complex(double a, double b) { _a = a; _b = b; } //méthodes public override string ToString() {return _a.ToString() + " + " + _b.ToString() + "i"; } //propriétés public double a { set{_a=value;} get{return _a;} } public double b { set{_b=value;} get{return _b;} } //opérateurs public static Complex operator+(Complex C1,Complex C2) { Complex C = new Complex(); C.a = C1.a + C2.a; C.b = C1.b + C2.b; return C; } public static Complex operator-(Complex C1,Complex C2) { Complex C = new Complex(); C.a = C1.a - C2.a; C.b = C1.b - C2.b; return C; } public static Complex operator*(Complex C1,Complex C2) { Complex C = new Complex(); C.a = C1.a * C2.a - C1.b * C2.b; C.b = C1.a * C2.b + C1.b * C2.a; return C; } } // Main Program class mcStart { public static void Main() { Complex C1 = new Complex(1,1); Complex C2 = new Complex(1,2); Console.WriteLine("Complex C1 : " + C1.ToString()); Console.WriteLine("Complex C2 : " + C2.ToString() + "\r\n"); Console.WriteLine("Addition : " + (C1 + C2).ToString()); Console.WriteLine("Soustraction : " + (C1 - C2).ToString()); Console.WriteLine("Multiplication : " + (C1*C2).ToString()); } }