" - +"运算符c#MONO 2.10.12

时间:2015-12-10 17:31:46

标签: c# mono

我在代码中发现了一件非常奇怪的事情。我错误地把索引作为这样的索引:

int a = 1;
int b = 1;

Dictionary<int, SomeClass> dic = new Dictionary<int, SomeClass> ();

dic[a -+ b].Field = 0;

正如你所看到的,有&#34; - +&#34; opperator真正起作用&#34; - &#34;。 无论如何,代码很开心,编译直到我找到它。

这是我正在进行的Unity3d游戏中代码的一部分。

问题是:这是正常的吗?或者这是单声道2中的已知错误并且已修复。我找不到任何关于它的信息。

1 个答案:

答案 0 :(得分:5)

这没什么奇怪的,并且没有-+运营商。有一元+运算符和二元-运算符。只需添加括号和一些间距即可使其更清晰:

int a = 1;
int b = 1;
int c = a -+ b;
int d = a - (+b); // Same as above

请注意,您也可以使用+-运算符和一元-运算符以及二进制+运算符:

int e = a +- b;
int f = a + (-b); // Same as above

虽然您不能像这样使用++--,但因为那些 是单独的运算符,您可以添加空格:

int g = a + + b;
int h = a + (+b); // Same as above

int i = a - - b;
int j = a - (-b); // Same as above

您还可以将多个一元操作符链接在一起,以获得真正的疯狂:

int k = a +-+-+-+ b;
int l = a + (-(+(-(+(-(+b)))))); // Same as above