在C#中,我应该如何使用i++运算符以及在哪里使用它?

3

我想知道在C#中i++运算符的含义。

我知道它会将int值加1,但我不知道在哪里使用它,它是否只适用于循环语句,还是可以在一般项目中使用。

如果你能给出一些实际例子说明何时使用i++运算符,那就太感谢了。


7
每当您想要增加一个整数时,您会使用它。 - Oliver Charlesworth
@OliCharlesworth,不仅限于整数,请参阅MSDN文档。该示例非常清楚地解释了它的工作原理。 - Steve
只是一点小提示:从C++世界来到C#的人通常使用++i而不是i++。 - kol
3
我知道你为什么这样说(即为什么加1应该是一个特殊情况?),但“i++”(或“++i”)是C语言中的一种习惯用法。 - Oliver Charlesworth
@kol:不一定。++ii++是那些现在过早优化的东西之一。在我使用的C++中,我没有看到很多人更经常地使用前者而不是后者。 - Mike Bailey
4个回答

6
这是“后增量”,意味着增量将在语句执行后进行。
int i=0;
Console.Write(i++);  // still 0
Console.Write(i);    // prints 1, it is incremented 

1
并不是真正回答问题。原帖作者已经知道它的功能,并且询问何时使用它。 - H H

3

总的来说,给定这个声明:

var myNum = 0;

任何您通常会执行此操作的地方:

myNum += 1;

你可以这样做:

你可以直接这样操作:

myNum++;

并没有真正回答问题。原帖作者知道它的作用,并且询问何时使用它。 - H H
我当然可以更深入地讨论前缀/后缀自增/自减运算符,但我想这似乎太显而易见了。无论何时你需要加一,你都可以使用这个运算符,特别注意增量实际发生的时间。我不确定是否需要更多的例子来证明它的用法。 - Josh

3
您所提到的是C#的后置自增运算符,常见用途包括:
  • 在标准for循环中递增计数器变量
  • 在while循环中递增计数器变量
  • 按顺序访问数组(3)

示例(3)

int[] table = { 0, 1, 2, 3, 4, 5, 6 };
int i = 0;
int j = table[i++]; //Access the table array element 0
int k = table[i++]; //Access the table array element 1
int l = table[i++]; //Access the table array element 2

那么,后置递增运算符真正的作用是什么?它返回变量的值,然后将其值增加1个单位。


1
表达式 i++ 就像 x == y > 0 ? x : z 一样,都是语法糖。 x = i++ 可以节省你写 x=i; i=i+1; 的空间。
这是好还是坏?实际上并没有确切的答案。
我个人避免使用这些表达式,因为它们会让我的代码看起来复杂,有时很难调试。始终考虑代码的可读性而不是可写性,始终考虑代码的可读性而不是编写代码的容易程度。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接