Home
Browsez les 647 exemples
Téléchargez les 647 exemples
Téléchargez des chapitres
Achetez sur amazon.fr
Niveau: Débutant/Intermédiaire
ISBN-2-84177-339-6
50 Euros
|
Exemple 11-17 extrait du chapitre Notions de classe et d'objet
Exemple 11-16< > Exemple 11-18
Cet exemple peut être compilé avec la ligne de commande: csc.exe /target:exe Exemple_11_17.cs Erreurs: 0 Avertissements: 0 Remarque:
Exemple_11_17.cs
using System;
class Abonne{
private string m_Nom;
public Abonne( string Nom ) { m_Nom = Nom; }
// Méthode à appeler lorsqu'un événement est déclenché
// (i.e lorsqu'un bulletin d'information est publié).
public void ReceptionInfo(object sender, EventArgs e){
InfoEventArgs info = e as InfoEventArgs;
if( info!= null ){
Console.WriteLine( m_Nom + " reçoit l'info: " +
((InfoEventArgs)e).GetBulletinInfo() );
}
}
}
//La classe d'argument de l'événement bulletin d'information.
class InfoEventArgs: EventArgs{
private string m_Description;
public string GetBulletinInfo() { return m_Description; }
public InfoEventArgs (string description) {
m_Description = description;
}
}
// Définition du type délégué 'handler d'un bulletin d'information'.
public delegate void InfoEventHandler(object sender, EventArgs e);
// Classe contenant les événements bulletin d'information.
class AgenceDePresse {
// Définition des événements bulletins d'information.
public event InfoEventHandler InfoFrance;
public event InfoEventHandler InfoMonde;
// Méthodes de déclenchement des événements
// (i.e de publication de bulletin d'information).
public void OnInfoFrance(InfoEventArgs bulletinInfo) {
if( InfoFrance != null )
InfoFrance(this,bulletinInfo);
}
public void OnInfoMonde(InfoEventArgs bulletinInfo) {
if( InfoMonde != null )
InfoMonde(this,bulletinInfo);
}
}
class Program {
public static void Main(){
// Création de l'agence de presse.
AgenceDePresse afp = new AgenceDePresse ();
// Création des abonnés.
Abonne raymond = new Abonne("Raymond");
Abonne olivier = new Abonne("Olivier");
Abonne mathieu = new Abonne("Mathieu");
// Création des abonnements aux événements bulletins d'info.
afp.InfoFrance += raymond.ReceptionInfo;
afp.InfoFrance += olivier.ReceptionInfo;
afp.InfoMonde += olivier.ReceptionInfo;
afp.InfoMonde += mathieu.ReceptionInfo;
// Publication de bulletins d'information
afp.OnInfoFrance(new InfoEventArgs("Hausse du prix du tabac."));
afp.OnInfoMonde(new InfoEventArgs(
"Nouvelle élection au Etats-Unis."));
// Résilation d'abonnement.
afp.InfoFrance -= new InfoEventHandler(olivier.ReceptionInfo );
// Publication de bulletins d'information.
afp.OnInfoFrance(new InfoEventArgs("Baisse des impôts."));
}
}
Copyright Patrick Smacchia 2006 2007
|