C#面向对象编程操作符重载-复数类
简介
操作符重载是C#编程语言的一个特性,在C++、Python编程语言中也支持这一特性。而在C,java,Go等大多数编程语言是不支持的(有些语言甚至都不支持函数重载)。
操作符重载可以是我们的自定义类对象可以使用运算符进行操作,这可以节约我们的时间,方便我们灵活的使用面向对象编程方法。
参考代码
public class Complex
{
public int real;
public int imag;
public Complex(int real,int imag)
{
this.real = real;
this.imag = imag;
}
// 复数加法
public static Complex operator +(Complex a, Complex b)
{
Complex c = new Complex(a.real + b.real, a.imag + b.imag);
return c;
}
// 复数减法
public static Complex operator -(Complex a, Complex b)
{
Complex c = new Complex(a.real - b.real, a.imag - b.imag);
return c;
}
// 乘除法后续补充
public override string ToString()
{
if (imag < 0) {
return String.Format("{0}{1}i", real, imag); }
if (imag == 0) {
return String.Format("{0}", real); }
return String.Format("{0}+{1}i", real, imag);
}
}
class TempMain
{
static void Main()
{
var c1 = new Complex(1, 2);
var c2 = new Complex(2, -4);
Console.WriteLine(c1 + c2);
Console.WriteLine(c1 - c2);
}
}