在类中定义算术运算

1 c# math methods class

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

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

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

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

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

Sel*_*enç 9

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

以下是+msdn重载运算符的示例

public static Complex operator +(Complex c1, Complex c2) 
{
   return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}
Run Code Online (Sandbox Code Playgroud)