C#操作符重载学习实践操作
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class MyCls
- {
- public int X
- {
- get; //C#操作符重载
- set;
- }
- public int Y
- {
- get;
- set;
- }
- public override string ToString()
- {
- return string.Format("X={0},Y={1}", X, Y);
- }
- public override bool Equals(object obj)
- {
- MyCls a = obj as MyCls;
- return a.X == this.X && a.Y == this.Y;
- }
- public override int GetHashCode()
- { //C#操作符重载
- return X * Y;
- }
- public static MyCls operator +(MyCls a, MyCls b)
- {
- return new MyCls() { X = a.X + b.X, Y = a.Y + b.Y };
- }
- public static MyCls operator -(MyCls a, MyCls b)
- {
- return new MyCls { X = a.X - b.X, Y = a.Y - b.Y };
- }
- public static MyCls operator ++(MyCls a)
- {
- return new MyCls() { X = a.X++, Y = a.Y++ };
- }
- public static MyCls operator --(MyCls a)
- {
- return new MyCls() { X = a.X--, Y = a.Y-- };
- }
- public static bool operator ==(MyCls a, MyCls b)
- {
- return a.X == b.X && a.Y == b.Y;
- }
- public static bool operator !=(MyCls a, MyCls b)
- { //C#操作符重载
- return a.X != b.X && a.Y != b.Y;
- }
- public static void Main()
- {
- MyCls a = new MyCls { X = 1, Y = 1 };
- 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();
- } //C#操作符重载
- }
- }
C#操作符重载程序输出结果:
- X=3,Y=3
- X=1,Y=1
- X=3,Y=3
- X=0,Y=0
- True
- False
C#操作符重载的学习应用就向你介绍到这里,希望对你了解和学习C#操作符重载有所帮助。
【编辑推荐】