求C#运算符重载代码实现
C#运算符重载,定义MyTime时间类,实现==,!=运算符的重载。
using System;
namespace ConsoleApp1
{
class MyTime
{
public int Hour { get; set; }
public int Minute { get; set; }
public int Second { get; set; }
public MyTime(int Hour, int Minute, int Second)
{
this.Hour = Hour;
this.Minute = Minute;
this.Second = Second;
}
public static bool operator ==(MyTime t1,MyTime t2)
{
return t1.Hour == t2.Hour && t1.Minute == t2.Minute && t1.Second == t2.Second;
}
public static bool operator !=(MyTime t1,MyTime t2)
{
return t1.Hour != t2.Hour || t1.Minute != t2.Minute || t1.Second != t2.Second;
}
public static MyTime operator +(MyTime t, int Second)
{
MyTime t1 = new MyTime(t.Hour, t.Minute, t.Second);
t1.Second += Second;
if (t1.Second > 59)
{
t1.Second -= 60;
t1.Minute += 1;
if (t1.Minute > 59)
{
t1.Minute -= 60;
t1.Hour += 1;
if (t1.Hour > 23) t1.Hour = 0;
}
}
return t1;
}
public static MyTime operator ++(MyTime t)
{
MyTime t1 = t + 1;
return t1 ;
}
public void Show()
{
Console.WriteLine(Hour + ":" + Minute + ":" + Second);
}
}
class Program
{
static void Main(string[] args)
{
MyTime t1 = new MyTime(12, 8, 50), t2, t3;
t2 = new MyTime(12, 9, 0);
if (t1 == t2) Console.WriteLine("时间相同");
else Console.WriteLine("时间不同");
t3 = t1 + 12;
t3.Show();
t3 = ++t2;
t3.Show();
t3 = t2++;
t3.Show();
Console.ReadKey();
}
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!