using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
namespace
ConsoleApplication1
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
class MyCls
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
public int X
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get;
set;
}
public int Y
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get;
set;
}
public override string ToString()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return string.Format("X={0},Y={1}", X, Y);
}
public override bool Equals(object obj)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
MyCls a = obj as MyCls;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return a.X == this.X && a.Y == this.Y;
}
public override int GetHashCode()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return X * Y;
}
public static MyCls operator +(MyCls a, MyCls b)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
return new MyCls()
{ X = a.X + b.X, Y = a.Y + b.Y };
}
public static MyCls operator -(MyCls a, MyCls b)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
return new MyCls
{ X = a.X - b.X, Y = a.Y - b.Y };
}
public static MyCls operator ++(MyCls a)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
return new MyCls()
{ X = a.X++, Y = a.Y++ };
}
public static MyCls operator --(MyCls a)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
return new MyCls()
{ X = a.X--, Y = a.Y-- };
}
public static bool operator ==(MyCls a, MyCls b)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return a.X == b.X && a.Y == b.Y;
}
public static bool operator !=(MyCls a, MyCls b)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return a.X != b.X && a.Y != b.Y;
}
public static void Main()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
MyCls a = new MyCls
{ X = 1, Y = 1 };
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
MyCls b = new MyCls
{ X = 2, Y = 2 };
Console.WriteLine(a + b);
Console.WriteLine(b - a);
Console.WriteLine(b++);
Console.WriteLine(a--);
Console.WriteLine(a++ == b);
Console.WriteLine(a!= b--);
Console.ReadLine();
}
}
}
输出结果:
X=3,Y=3
X=1,Y=1
X=3,Y=3
X=0,Y=0
True
False