方法定义中的运算符+是做什么的?

What does operator + in method definition do?

所以我以前从未见过这个,我想弄清楚它的作用:

public static MyFunction operator +(MyObject first, MyObject second)

它覆盖 class 的 + 运算符,允许这样的代码编译和 运行:

MyObject op1 = new MyObject();
MyObject op2 = new MyObject();
MyFunction result = op1 + op2;

执行 + 操作会调用您发布的方法。有关运算符重载的更多信息,请参阅 MSDN

这称为运算符重载,允许您为“+”、“-”、“==”等运算符定义行为

查看此处了解更多信息:https://msdn.microsoft.com/en-us/library/aa288467%28v=vs.71%29.aspx

它被称为operator overload

它允许您使用+-%等原始运算符来应用于您定义的对象。

一个可能有用的示例是,如果您有两个列表并且您想要将一个列表添加到另一个列表的末尾。 MSDN 使用的另一个示例是,如果您有包含两个向量的复数。

现在通常更合适的做法是只定义一个方法来接收您要应用的操作数的数量并使用该方法,而不是通过覆盖一个运算符来使您的代码更难阅读和调试用于其他事情。

tl;博士;除非你有充分的理由,否则使用方法而不是运算符重载。