using System;
using System.Collections.Generic;
using System.Text;
namespace Examp18
{
class Rectangle
{
private int Height;
private int Width;
public Rectangle()
{
_Height = 0;//会自动调用set方法
_Width = 0;
}
public Rectangle(int Height, int Width)
{
_Height = Height;
_Width = Width;
}
public int _Height
{
get { return Height; }//这里的Height是将被调用的变量
set { Height = value; }
}
public int _Width
{
get { return Width; }
set { Width = value; }
}
// 重载ToString方法
public override String ToString()
{
return "高" + Height + "宽" + Width;
}
public double Area
{
get { return Height * Width; }
//set { }
}
static void Main(string[] args)
{
Rectangle objRec1 = new Rectangle();
Rectangle objRec2 = new Rectangle();
Rectangle objRec3 = new Rectangle(4,50);
objRec1.Height = 10;
objRec2.Height = 20;
objRec1.Width = 20;
objRec2.Width = 30;
Console.WriteLine("矩形#长与宽:{0}", objRec1.ToString());
Console.WriteLine("矩形#长与宽:{0}", objRec2.ToString());
Console.WriteLine("矩形#长与宽:{0}", objRec3.ToString());
//这里会调用操作符"=="进行得载
if (objRec1 == objRec2)
{
Console.WriteLine("objRec1与objRec2宽与高都相等");
}
else
{
//调用">"操作符进行重载
if (objRec1 > objRec2)
{
Console.WriteLine("objRec1大于objRec2");
}
else
{
Console.WriteLine("objRect1小于objRect2");
}
}
//调用"=="操作符进行重载
if (objRec1 == objRec3)
{
Console.WriteLine("objRec1与objRec3的长与宽相等");
}
else
{
//调用"=="操作符进行重载
if (objRec1 == objRec3)
{
Console.WriteLine("objRec1与objRec3面积相等");
}
else
{
//调用">"操作符进行重载
if (objRec1 > objRec3)
{
Console.WriteLine("objRec1面积比objRec3面积大");
}
else
{
Console.WriteLine("objRec1面积比objRec3面积小");
}
}
}
}
//对操作符"=="进行重载
public static bool operator ==(Rectangle a,Rectangle b)
{
//会高用get属性
return ((a._Height==b._Height)&&(a._Width==b._Width));
}
//对操作符"!="进行重载
public static bool operator !=(Rectangle a, Rectangle b)
{
return !(a == b);
}
//对操作符">"进行重载
public static bool operator >(Rectangle a, Rectangle b)
{
return a.Area > b.Area;
}
//对"<"进行重载
public static bool operator <(Rectangle a, Rectangle b)
{
return a.Area < b.Area;
}
}
}