Bonjour tout le monde
J'ai la méthode suivante qui crée des fractions :
public Program(int numerateur, int denominateur)
{
if (denominateur != 0)
{
num = numerateur;
den = denominateur;
}
else
Console.WriteLine("Le denominateur ne doit pas être égal à zero !!", nameof(denominateur));
}

Avec la méthode suivante qui affiche les résultats :
public static void Str()
{
Console.WriteLine($"{num}/{den}");
}

Maintenant si j'exécute ce code j'ai ce qui suit :
static void Main(string[] args)
{
var x1 = new Program(0, 1);
var x2 = new Program(1, 8);
var x3 = new Program(1, 6);
var x4 = new Program(1, 4);
var x5 = new Program(1, 3);
var x6 = new Program(1, 2);
var x7 = new Program(2, 3);
var x8 = new Program(1, 1);
List<Program> Ls_Str = new List<Program>
{
x1, x2, x3, x4 , x5 , x6 , x7, x8
};
Avec ForEach ou foreach le résultat est le même :
1........ : Ls_Str.ForEach(x => Str());
2........ : foreach(var x in Ls_Str) Str() ;

il me donne ce résultat :
1/1
1/1
1/1
1/1
1/1
1/1
1/1
1/1
au lieu de :
0/1
1/8
1/6
1/4
1/3
1/2
2/3
1/1
mais si je code ainsi :
var x1 = new Program(0, 1); Str();
var x2 = new Program(1, 8); Str();
var x3 = new Program(1, 6); Str();
var x4 = new Program(1, 4); Str();
var x5 = new Program(1, 3); Str();
var x6 = new Program(1, 2); Str();
var x7 = new Program(2, 3); Str();
var x8 = new Program(1, 1); Str();
le résultat est correct :
0/1
1/8
1/6
1/4
1/3
1/2
2/3
1/1
de l'aide Svp et merci d'avance !!