Passage d'objet par valeur
Bonjour
Je définis deux classes comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public class Populace
{
public Populace()
{
E = new enfants();
}
public enfants E { get; set; }
private int ageMajorite;
public int AgeMajorite
{
get { return ageMajorite; }
set
{
ageMajorite = value;
if (E.Age < ageMajorite)
E.majeur = false;
else
E.majeur = true;
}
}
}
public class enfants
{
public enfants(){}
public enfants(int age) { }
public int Age { get; set; }
public bool majeur { get; set; }
} |
Dans mon programme, je fais ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Populace p1 = new Populace();
Populace p2 = new Populace();
enfants e = new enfants(19);
e.majeur = true;
p1.E = e;
p2.E = e;
p1.AgeMajorite = 18;
p2.AgeMajorite = 21; |
Je m'apercois que la valeur de e.majeur est modifiée, alors que j'aurais voulu que seule celle de p2.E.majeur le soit. En clair, je pensais que lorseque je fais e était passé par valeur, or il semblerait qu'il soit passé par référence. Comment fait-on pour faire un passage d'objet par valeur ?
Merci d'avance