|
Exemple 10-8 extrait du chapitre Le système de types
Exemple 10-7< > Exemple 10-9
Cet exemple peut être compilé avec la ligne de commande: csc.exe /target:exe Exemple_10_8.cs Erreurs: 0 Avertissements: 0 Remarque:
Exemple_10_8.cs
class Article : System.ICloneable {
public string Description;
public int Prix;
public object Clone() {
return this.MemberwiseClone();
}
}
class Commande {
public int Quantite;
public Article Article;
public override string ToString() {
return "Commande: " + Quantite + " x " + Article.Description +
" Coût total: " + Article.Prix * Quantite;
}
// Constructeur par défaut.
public Commande() { }
// Constructeur de copie paramètrable.
public Commande( Commande original , bool bDeepCopy) {
this.Quantite = original.Quantite;
if( bDeepCopy )
this.Article = original.Article.Clone() as Article;
else
this.Article = original.Article;
}
}
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 = new Commande( commande , true );
commandeClone.Article.Description = "Veste";
System.Console.WriteLine(commande);
}
}
Copyright Patrick Smacchia 2006 2007
|