1500 characters remaining
 Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

# How to: Use Operator Overloading to Create a Complex Number Class (C# Programming Guide)

Visual Studio 2008

This example shows how you can use operator overloading to create a complex number class Complex that defines complex addition. The program displays the imaginary and the real parts of the numbers and the addition result using an override of the ToString method.

## Example

```public struct Complex
{
public int real;
public int imaginary;

public Complex(int real, int imaginary)  //constructor
{
this.real = real;
this.imaginary = imaginary;
}

// Declare which operator to overload (+),
// the types that can be added (two Complex objects),
// and the return type (Complex):
public static Complex operator +(Complex c1, Complex c2)
{
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}

// Override the ToString() method to display a complex number in the traditional format:
public override string ToString()
{
return (System.String.Format("{0} + {1}radius", real, imaginary));
}
}

class TestComplex
{
static void Main()
{
Complex num1 = new Complex(2, 3);
Complex num2 = new Complex(3, 4);

Complex sum = num1 + num2;

// Print the numbers and the sum using the overriden ToString method:
System.Console.WriteLine("First complex number:  {0}", num1);
System.Console.WriteLine("Second complex number: {0}", num2);
System.Console.WriteLine("The sum of the two numbers: {0}", sum);

// Keep the console window open in debug mode.
System.Console.WriteLine("Press any key to exit.");
}
}
/* Output:
First complex number:  2 + 3i
Second complex number: 3 + 4i
The sum of the two numbers: 5 + 7i
*/
```