CSharp - Overload the binary operator + to add two Complex Number


The operator function must be tagged with public and static.

The keyword operator is followed by the operator symbol.

Function parameters are operands and return type of the operator function that is the result of an expression.


using System;
class ComplexNumber
    public double real, imaganinary;
    public ComplexNumber()
    {/* w  w w . j a  v  a2  s  . c  o  m*/
        this.real = 0;
        this.imaganinary = 0;
    public ComplexNumber(double real, double imaginary)
        this.real = real;
        this.imaganinary = imaginary;
    //Overloading a binary operator +
    public static ComplexNumber operator +(ComplexNumber cnumber1,
    ComplexNumber cnumber2)
        ComplexNumber temp = new ComplexNumber();
        temp.real = cnumber1.real + cnumber2.real;
        temp.imaganinary = cnumber1.imaganinary + cnumber2.imaganinary;
        return temp;
class Program
    static void Main(string[] args)
        ComplexNumber cNumber1 = new ComplexNumber(2.1, 3.2);
        Console.WriteLine("Complex Number1: {0}+{1}i", cNumber1.real, cNumber1.imaganinary);
        ComplexNumber cNumber2 = new ComplexNumber(1.1, 2.1);
        Console.WriteLine("Complex Number2: {0}+{1}i", cNumber2.real, cNumber2.imaganinary);
        //Using the + operator on Complex numbers
        ComplexNumber cNumber3 = cNumber1 + cNumber2;
        Console.WriteLine("After applying + operator we have got:{0}+{1}i", cNumber3.real, cNumber3.imaganinary);


Related Topic