过去几天一直在使用 C# 并尝试利用其“简洁”语法,我尝试使用以下技巧。
Int32 _LastIndex = -1;
T[] _Array;
_Array[_LastIndex++] = obj;
现在的问题是它在递增数字之前返回值,所以我尝试...
_Array[(_LastIndex++)] = obj;
但同样的行为正在发生(这也让我有点困惑)。
有人可以先解释为什么第二个例子(我明白为什么第一个)不起作用吗?有什么方法可以完成我想做的事情吗?
最佳答案
用圆括号包围后增量 _LastIndex++
并没有将它分成一个不同的操作,它只是改变了:
_Array[_LastIndex++] = obj; // _Array[_LastIndex] = obj; _LastIndex++;
进入:
_Array[(_LastIndex++)] = obj; // _Array[(_LastIndex)] = obj; _LastIndex++;
如果想在使用前自增,需要pre-increment变体,如下:
_Array[++_LastIndex] = obj; // ++_LastIndex; _Array[_LastIndex] = obj;
关于c# - C#中的单行递增和返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5190195/