X ++ incrémentera la valeur, mais renverra ensuite l'ancienne valeur.
Donc dans ce cas:
static void Main(string[] args)
{
int x = 10;
x = x++;
Console.WriteLine(x);
}
Vous avez X à 11 juste pour un moment, puis il revient à 10 car 10 est la valeur de retour de (x ++).
Vous pouvez plutôt faire ceci pour le même résultat:
static int plusplus(ref int x)
{
int xOld = x;
x++;
return xOld;
}
static void Main(string[] args)
{
int x = 10;
x = plusplus(x);
Console.WriteLine(x);
}
Il convient également de mentionner que vous obtiendriez le résultat attendu de 11 si vous l’aviez fait:
static void Main(string[] args)
{
int x = 10;
x = ++x;
Console.WriteLine(x);
}