我在代码中发现了一件非常奇怪的事情。我错误地把索引作为这样的索引:
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中的已知错误并且已修复。我找不到任何关于它的信息。
答案 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