C# 在类中定义算术运算

C# 在类中定义算术运算,c#,class,math,methods,C#,Class,Math,Methods,我正在用自己的类在c#中创建一个库dll。但是,对于算术运算(+、-、*、/,…),我创建了像.Add(c1,c2)这样的方法,其中c1和c2是我的类的对象 这个方法很好,但我更愿意说:c3=c1+c2;由于我已经为我的类编写了加法函数、乘法函数、除法函数等,我想定义一下: c1=c2+c3与之相同:c1=MyClass.Add(c2,c3) 如果可能的话,我会重用我的代码。我确信网络上有关于这一切的文档和信息,但我找不到,我搜索的任何东西,谷歌似乎误解了我的问题 如何为我的类的对象定义基本算术

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

这个方法很好,但我更愿意说:c3=c1+c2;由于我已经为我的类编写了加法函数、乘法函数、除法函数等,我想定义一下:

c1=c2+c3与之相同:c1=MyClass.Add(c2,c3)

如果可能的话,我会重用我的代码。我确信网络上有关于这一切的文档和信息,但我找不到,我搜索的任何东西,谷歌似乎误解了我的问题

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

您正在查找。您需要重载+运算符来告诉编译器如何在两个对象之间执行加法。然后您将能够像添加两个整数一样添加两个对象

下面是一个从

您正在查找。您需要重载+运算符来告诉编译器如何在两个对象之间执行加法。然后您将能够像添加两个整数一样添加两个对象

下面是一个从


或者,因为您已经在您提到的static
.Add
方法中包含了此代码,您可以调用它(假设您仍然想要保留它):
返回Complex.Add(c1,c2)
或者因为您已经在您提到的静态
.Add
方法中有了这个代码,您可以调用它(假设您仍然想要保留它):
返回Complex.Add(c1,c2)
public static Complex operator +(Complex c1, Complex c2) 
{
   return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}