|
Exemple 10-7 extrait du chapitre Le système de types
Exemple 10-6< > Exemple 10-8
Cet exemple peut être compilé avec la ligne de commande: csc.exe /target:exe Exemple_10_7.cs Erreurs: 0 Avertissements: 0 Remarque:
Exemple_10_7.cs
class Article : System.ICloneable {
public string Description;
public int Prix;
public object Clone() {
// Copie superficielle = Copie en profondeur.
return this.MemberwiseClone();
}
}
class Commande : System.ICloneable {
public int Quantite;
public Article Article;
public override string ToString() {
return "Commande: " + Quantite + " x " + Article.Description +
" Coût total: " + Article.Prix * Quantite;
}
public object Clone() {
// Copie en profondeur.
Commande clone = new Commande();
clone.Quantite = this.Quantite;
clone.Article = this.Article.Clone() as Article;
return clone;
}
}
class Program {
static void Main() {
Commande commande = new Commande();
commande.Quantite = 2;
commande.Article = new Article();
commande.Article.Description = "Chaussure";
commande.Article.Prix = 80;
System.Console.WriteLine(commande);
Commande commandeClone = commande.Clone() as Commande;
commandeClone.Article.Description = "Veste";
System.Console.WriteLine(commande);
}
}
Copyright Patrick Smacchia 2006 2007
|