Introduction
The concept of Polymorphism is very simple in C#. Operator overloading is a form of Polymorphism. Operator overloading means giving ability to normal operators when they are applied to user defined data type. All c# binary operator and unary operator can be overloaded such as +, -, *, /, !, ++. Operator overloading is use a special function called operator function for overloading purpose in C#. The function must be public or static. The Syntax of operator overloading is follow
syntax
return-data-type operator symbol-of-operator (parameters)
{
//body of the function
}
Example
using System;
using System.Collections.Generic;
using System.Text;
namespace OperatorOvrloadingApplication
{
class Box
{
private double length; // Length of a box
private double breadth; // Breadth of a box
private double height; // Height of a box
public double showVolume()
{
return length * breadth * height;
}
public void setLength(double len)
{
length = len;
}
public void setBreadth(double bre)
{
breadth = bre;
}
public void setHeight(double hei)
{
height = hei;
}
// Overload + operator to add two Box objects.
public static Box operator +(Box b, Box c)
{
Box box = new Box();
box.length = b.length + c.length;
box.breadth = b.breadth + c.breadth;
box.height = b.height + c.height;
return box;
}
}
class calculate
{
static void Main(string[] args)
{
Box Box1 = new Box(); // Declare Box1 of type Box
Box Box2 = new Box(); // Declare Box2 of type Box
Box Box3 = new Box(); // Declare Box3 of type Box
double volume = 0.0; // Store the volume of a box here
// box 1 specification
Box1.setLength(1.0);
Box1.setBreadth(2.0);
Box1.setHeight(3.0);
// box 2 specification
Box2.setLength(4.0);
Box2.setBreadth(5.0);
Box2.setHeight(6.0);
// volume of box 1
volume = Box1.showVolume();
Console.WriteLine("Volume of Box1 : {0}", volume);
// volume of box 2
volume = Box2.showVolume();
Console.WriteLine("Volume of Box2 : {0}", volume);
// Add two object as follows:
Box3 = Box1 + Box2;
// volume of box 3
volume = Box3.showVolume();
Console.WriteLine("Volume of Box3 : {0}", volume);
Console.ReadKey();
}
}
}
The output of following program