Csharp/CSharp Tutorial/Operator/Prefix Postfix Operator — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 15:17, 26 мая 2010
Содержание
Increment and Decrement
The ++ and the -- are the increment and decrement operators.
The increment operator adds 1 to its operand, and the decrement operator subtracts 1.
<source lang="csharp">x = x + 1;</source>
Operators ++
<source lang="csharp">using System;
class Class1 { [STAThread] static void Main(string[] args) { MyCar car = 5; for( int i = 0; i < 20; ++i ) { car++; Console.WriteLine( "{0}", car.GetSpeed()); } } } public class MyCar { private static int speed = 2; private const int maxSpeed = 200; public bool ChangeSpeed(int newSpeed) { if( newSpeed > maxSpeed ) return false; speed = newSpeed; return true; } public static MyCar operator ++( MyCar car ) { car.ChangeSpeed(++speed); return car; } public static implicit operator MyCar( int from ) { MyCar car = new MyCar(); car.ChangeSpeed( from ); return car; } public int GetSpeed() { return speed; } }</source>
postfix decrement
<source lang="csharp">class MainClass {
public static void Main() { int length = 3; int newLength = length--; System.Console.WriteLine("Postfix decrement example"); System.Console.WriteLine("length = " + length); System.Console.WriteLine("newLength = " + newLength); }
}</source>
Postfix decrement example length = 2 newLength = 3
postfix increment
<source lang="csharp">class MainClass {
public static void Main() { int length = 3; int newLength = length++; System.Console.WriteLine("Postfix increment example"); System.Console.WriteLine("length = " + length); System.Console.WriteLine("newLength = " + newLength); }
}</source>
Postfix increment example length = 4 newLength = 3
Pre And Post Increment
<source lang="csharp">using System; class MainClass {
static void Main() { int x = 5, y; y = x++; Console.WriteLine("y: {0}, x: {1}", y, x); x = 5; y = ++x; Console.WriteLine("y: {0}, x: {1}", y, x); x = 5; y = x--; Console.WriteLine("y: {0}, x: {1}", y, x); x = 5; y = --x; Console.WriteLine("y: {0}, x: {1}", y, x); }
}</source>
y: 5, x: 6 y: 6, x: 6 y: 5, x: 4 y: 4, x: 4
prefix decrement
<source lang="csharp">class MainClass {
public static void Main() { int length = 3; int newLength = --length; System.Console.WriteLine("Prefix decrement example"); System.Console.WriteLine("length = " + length); System.Console.WriteLine("newLength = " + newLength); }
}</source>
Prefix decrement example length = 2 newLength = 2
prefix increment
<source lang="csharp">class MainClass {
public static void Main() { int length = 3; int newLength = ++length; System.Console.WriteLine("Prefix increment example"); System.Console.WriteLine("length = " + length); System.Console.WriteLine("newLength = " + newLength); }
}</source>
Prefix increment example length = 4 newLength = 4
The difference between prefix and postfix forms of ++
<source lang="csharp">using System;
class Example {
public static void Main() { int x, y; int i; x = 1; Console.WriteLine("Series generated using y = x + x++;"); for(i = 0; i < 10; i++) { y = x + x++; // postfix ++ Console.WriteLine(y + " "); } Console.WriteLine(); x = 1; Console.WriteLine("Series generated using y = x + ++x;"); for(i = 0; i < 10; i++) { y = x + ++x; // prefix ++ Console.WriteLine(y + " "); } Console.WriteLine(); }
}</source>
Series generated using y = x + x++; 2 4 6 8 10 12 14 16 18 20 Series generated using y = x + ++x; 3 5 7 9 11 13 15 17 19 21
Using the Post-Increment Operator
<source lang="csharp">class MainClass {
static void Main() { int count; int result; count = 0; result = count++; System.Console.WriteLine("result = {0} and count = {1}",result, count); }
}</source>
Using the Pre-Increment Operator
<source lang="csharp">class MainClass {
static void Main() { int count; int result; count = 0; result = ++count; System.Console.WriteLine("result = {0} and count = {1}", result, count); }
}</source>