在类中定义算术运算

时间:2014-11-07 22:57:46

标签: c# class math methods

我正在用自己的类在c#中创建一个库dll。但是,对于算术运算(+, - ,*,/,...),我创建了像.Add(c1,c2)这样的方法,其中c1和c2是我班级的对象。

这种方法很棒,但我更愿意说:c3 = c1 + c2;因为我已经为我的类编写了我的Add函数,Multiply函数,Divide函数等,我想定义:

c1 = c2 + c3与:c1 = MyClass.Add(c2,c3);

所以我会重用我的代码,如果可能的话。我确信在网络上有关于所有这些的文档和信息,但我找不到它,我搜索的任何内容,谷歌都会误解我的问题。

如何为类的对象定义基本算术运算?

1 个答案:

答案 0 :(得分:9)

您正在寻找operator overloading。您需要重载+运算符来告诉编译器如何在两个对象之间执行添加。然后您将能够添加两个对象,例如添加两个整数。

以下是从msdn

重载+运算符的示例
public static Complex operator +(Complex c1, Complex c2) 
{
   return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}