Bonjour,

Je viens de me rendre compte d'un gros problème.
J'ai l'impression que MemberwiseClone marche qu'avec les types primitifs.
Un exemple.

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
public class ObjetA
{
	public long Id { get; set; }
	public string Name { get; set; }
	public List<ObjetB> ObjetBList { get; set; }
 
	public ObjetA Clone()
	{
		return (ObjetA)MemberwiseClone();
	}
}
 
public class ObjetB
{
 
}
 
var obj1 = new ObjetA(){Name = "Test1", .....};
//obj1.ObjetBList.Count => 5
 
 
var obj2 = obj1.Clone();
obj2.Name = "Test2";
obj2.ObjetBList.Clear();
 
//obj1 => Test1
//obj2 => Test2
//obj1.ObjetBList.Count => 0
//obj2.ObjetBList.Count => 0

En fait quand je modifie l'obj1.ObjetBList cela se répercute obj2.ObjetBList et vis versa.
Hors ce n'est pas le comportement que je souhaite.
Suis je obligé de parcourir la liste et d'appliquer clone à tous?
Par avance merci.