Max*_*ich 4 c# syntax increment
在最近几天一直在玩C#并尝试利用其"简洁"的语法,我试图使用以下技巧.
Int32 _LastIndex = -1;
T[] _Array;
_Array[_LastIndex++] = obj;
Run Code Online (Sandbox Code Playgroud)
现在问题是它在递增数字之前返回值,所以我试着......
_Array[(_LastIndex++)] = obj;
Run Code Online (Sandbox Code Playgroud)
然而同样的行为正在发生(这也让我有点困惑).
有人可以先解释为什么第二个例子(我明白为什么第一个)不起作用?有没有办法完成我想要做的事情?
_LastIndex++
用括号围绕后增量不会将其分成不同的操作,它只是改变:
_Array[_LastIndex++] = obj; // _Array[_LastIndex] = obj; _LastIndex++;
Run Code Online (Sandbox Code Playgroud)
成:
_Array[(_LastIndex++)] = obj; // _Array[(_LastIndex)] = obj; _LastIndex++;
Run Code Online (Sandbox Code Playgroud)
如果要在使用前增加,则需要预增量变量,如下所示:
_Array[++_LastIndex] = obj; // ++_LastIndex; _Array[_LastIndex] = obj;
Run Code Online (Sandbox Code Playgroud)