Voici une simple application console code, qui renvoie un résultat, je ne comprends pas complètement.
Essayez de penser qu'elle renvoie 0, 1 ou 2 dans la console:
using System;
namespace ConsoleApplication
{
class Program
{
static void Main()
{
int i = 0;
i += Increment(ref i);
Console.WriteLine(i);
Console.ReadLine();
}
static private int Increment(ref int i)
{
return i++;
}
}
}
La réponse est 0.
Ce que je ne comprends pas, c'est pourquoi un post incrément i++
, à partir de l' Increment
méthode, qui est exécuté sur un ref
(pas sur une copie de la variable) ne incrémenter la variable, mais il est juste ignoré plus tard.
Ce que je veux dire, c'est dans cette vidéo:
Quelqu'un peut-il expliquer cet exemple, et pourquoi, lors de debug, je vois que la valeur est incrémentée de 1, mais alors, il revient à 0?