C#操作符的重載
c#要求所有的運算符重載都聲明為public 和static,這表示他們與他們的類或結構相關聯,而不與實例相關聯。操作符的重載使用operator關鍵字,C#不允許重載=操作符。
下面是一個重載+操作符的列子,
代碼
static void Main(string[] args)
{
Square a = new Square(3, 3);
Square b = new Square(5, 5);
Square c = new Square();
c = a + b;
Console.WriteLine(c.ToString());
Console.ReadKey();
}
public class Square
{
public Square() { }
public Square(int w,int h)
{
this.w = w;
this.h = h;
}
public Square(int area)
{
this.area=area;
}
public int w { get; set; }
public int h { get; set; }
public int area{get;set;}
public static Square operator +(Square a,Square b)
{
return new Square(a.w*a.h+b.w*b.h);
}
public override string ToString()
{
return this.area.ToString();
}
}
{
Square a = new Square(3, 3);
Square b = new Square(5, 5);
Square c = new Square();
c = a + b;
Console.WriteLine(c.ToString());
Console.ReadKey();
}
public class Square
{
public Square() { }
public Square(int w,int h)
{
this.w = w;
this.h = h;
}
public Square(int area)
{
this.area=area;
}
public int w { get; set; }
public int h { get; set; }
public int area{get;set;}
public static Square operator +(Square a,Square b)
{
return new Square(a.w*a.h+b.w*b.h);
}
public override string ToString()
{
return this.area.ToString();
}
}


浙公網安備 33010602011771號