这个运算符在C#中处理什么情况?

时间:2017-03-24 15:36:25

标签: c# operator-overloading

取这个类和运算符重载:

... "top": (pos.top + h + 10), "left": (pos.left + w + 10)});

暂时忽略实现只返回“test”,在什么情况下会调用此运算符重载?它是有效的并且编译,但我无法弄清楚它的用途是什么!

它只需要一个参数,那么添加什么?

1 个答案:

答案 0 :(得分:3)

  

那么它正在添加什么?

我认为它不会增加任何东西,但在某种意义上决定了极性。 我想这可以与

中的负面和正面的标志相提并论
int i = +5;

编译得很好:

Test t1 = new Test();    
Test t2 = +t1;

但这不是:

Test t4 = -t1;

在添加

后编译
public static Test operator -(Test test) { return test; }

以下是MSDN对一元+算子

所说的内容
  

一元加运算符(+)的结果是其操作数的值

     

一元否定运算符( - )产生其操作数的负数