The code uses the feature of Operator Overloading in C#. It shows how different operators are overloaded and can be used in a easy manner.
using System;
class Rectangle
{
private int iHeight;
private int iWidth;
public Rectangle()
{
Height=0;
Width=0;
}
public Rectangle(int w,int h)
{
Width=w;
Height=h;
}
public int Width
{
get
{
return iWidth;
}
set
{
iWidth=value;
}
}
public int Height
{
get
{
return iHeight;
}
set
{
iHeight=value;
}
}
public int Area
{
get
{
return Height*Width;
}
}
/* OverLoading == */
public static bool operator==(Rectangle a,Rectangle b)
{
return ((a.Height==b.Height)&&(a.Width==b.Width));
}
/* OverLoading != */
public static bool operator!=(Rectangle a,Rectangle b)
{
return !(a==b);
}
/* Overloding > */
public static bool operator>(Rectangle a,Rectangle b)
{
return a.Area>b.Area;
}
/* Overloading < */
public static bool operator<(Rectangle a,Rectangle b)
{
return !(a>b);
}
/* Overloading >= */
public static bool operator>=(Rectangle a,Rectangle b)
{
return (a>b)||(a==b);
}
/* Overloading <= */
public static bool operator<=(Rectangle a,Rectangle b)
{
return (a<b)||(a==b);
}
public override String ToString()
{
return "Height=" + Height + ",Width=" + Width;
}
public static void Main()
{
Rectangle objRect1 =new Rectangle();
Rectangle objRect2 =new Rectangle();
Rectangle objRect3 =new Rectangle(10,15);
objRect1.Height=15;
objRect1.Width=10;
objRect2.Height=25;
objRect2.Width=10;
Console.WriteLine("Rectangle#1 " + objRect1);
Console.WriteLine("Rectangle#2 " + objRect2);
Console.WriteLine("Rectangle#3 " + objRect3);
if(objRect1==objRect2)
{
Console.WriteLine("Rectangle1 & Rectangle2 are Equal.");
}
else
{
if(objRect1>objRect2)
{
Console.WriteLine("Rectangle1 is greater than Rectangle2");
}
else
{
Console.WriteLine("Rectangle1 is lesser than Rectangle2");
}
}
if(objRect1==objRect3)
{
Console.WriteLine("Rectangle1 & Rectangle3 are Equal.");
}
else
{
Console.WriteLine("Rectangle1 & Rectangle3 are not Equal.");
}
}
}
Join the conversation! Your thoughts help the community grow.
Sign in to leave a comment
It is the same account you read, post and publish with — and you will come straight back to this page.
Joe WilsonPosted Dec 28, 2015, 10:31 AM
Thank you very much.
Rushal AroraPosted Oct 29, 2012, 4:20 PM
why relational operators are overloaded in pairs?
Rushal AroraeditedPosted Oct 29, 2012, 4:18 PMEdited Oct 29, 2012, 4:20 PM
why 'public' & 'static' are necessary with operator overloading? Please explain me in detail separately for both. or Explain me this link : http://blogs.msdn.com/b/ericlippert/archive/2007/05/14/why-are-overloaded-operators-always-static-in-c.aspx
vaishnavi ranganathanPosted Oct 10, 2010, 9:24 AM
wat will be the output of this program?