我正在用自己的类在c#中创建一个库dll。但是,对于算术运算(+, - ,*,/,...),我创建了像.Add(c1,c2)这样的方法,其中c1和c2是我班级的对象。
这种方法很棒,但我更愿意说:c3 = c1 + c2;因为我已经为我的类编写了我的Add函数,Multiply函数,Divide函数等,我想定义:
c1 = c2 + c3与:c1 = MyClass.Add(c2,c3);
所以我会重用我的代码,如果可能的话。我确信在网络上有关于所有这些的文档和信息,但我找不到它,我搜索的任何内容,谷歌都会误解我的问题。
如何为类的对象定义基本算术运算?
答案 0 :(得分:9)
您正在寻找operator overloading。您需要重载+运算符来告诉编译器如何在两个对象之间执行添加。然后您将能够添加两个对象,例如添加两个整数。
以下是从msdn
重载+
运算符的示例
public static Complex operator +(Complex c1, Complex c2)
{
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}