Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该在C#中使用哪种递增方法++;我或我++;?_C#_Loops_Increment - Fatal编程技术网

我应该在C#中使用哪种递增方法++;我或我++;?

我应该在C#中使用哪种递增方法++;我或我++;?,c#,loops,increment,C#,Loops,Increment,例如 for(int i=0;i

例如

for(int i=0;i<10;++i)
...
vs

对于(inti=0;i<10;i++)


有人告诉我,我会更有效率。其他语言(如JavaScript)中是否存在差异,或者这是一个更基本的规则?

i++和++i之间的差异是表达式的值

值i++是增量之前i的值。++i的值是增量后i的值

然而,在你的循环中,这并没有任何区别

for (int i = 0; i < 10; ++i) 
...

在某些语言中使用++i的优点是它不临时创建不必要的(参见例如C++对C++的彻底解释)。

<代码>(int i=0;i
++i
的效率并不比C#中的
i++
更高。如果不在同一表达式中分配结果,则会为这两种情况生成相同的代码

当然,如果您将结果分配给同一表达式中的某个对象,那么生成的代码将有所不同——但在这种情况下,语义是不同的,您无法选择使用哪种形式的增量


所以你可以用你最喜欢的方法。

在这种情况下,
i++
++i
是一样的。它们之间的主要区别是增量后与增量前的区别自从Scott Meyers写了“有效的C++”以来,已经被问了无数次,并且讨论得异常。来吧。
int i = 0;
00000088  xor         edx,edx 
0000008a  mov         dword ptr [ebp-40h],edx 
            i++;
0000008d  inc         dword ptr [ebp-40h] 
            ++i;
00000090  inc         dword ptr [ebp-40h] 
for(int i=0;i<10;i++)
{
 //some jobs
}
int i=0;
while(i<10)
{
 //some jobs
   i++;
}
for(int i=0;i<10;i++)
{
 //some jobs
}
int i=0;
while(i<10)
{
 //some jobs
   ++i;
}