|
using System;
namespace evenements
{
public class
Labo //le
laboratoire à espionner
{
public
event EventHandler espion; //je
crée l’évènement espion
private string _conversation;
//je
crée une propriété du champ _conversation
public string Conversation
{
get
{
return _conversation;
}
set
{
_conversation = value;
//espion
nous renseignera dès que le champ conversation sera initialisé
if (espion != null) //on
teste d'abord si l'événement espion est nulle avant de le lever
espion(this,EventArgs.Empty);
}
}
}
public
class Test
{
Labo objet;
public
Test()
{
objet = new Labo();
connexionQG();
}
public
void connexionQG() //va
simuler la connexion de l'espion à son QG qui ici, est le
gestionnaire d'évènement
{
objet.espion += new EventHandler(QG);
//l'évènement espion est associé au
gestionnaire d'évènement(QG)
Console.WriteLine("connexion établie");
}
public
void arretConnexion()
//va couper la connexion au QG
(gestionnaire d'évènement)
{
objet.espion -= new EventHandler(QG); //le
"-" empêche la capture de l'évènement espion (coupe la connexion)
Console.WriteLine("connexion coupée");
}
public
void QG(object
sender,EventArgs e) //c'est notre gestionnaire d'évènement!
ici, il représente le QG
{
Console.WriteLine("Base: Données reçues 5 sur 5!");
}
public
void la_conversation(string
conversation) //on
simule une conversation
{
Console.WriteLine("informations : {0}",conversation);
objet.Conversation = conversation;
//il y aura accès en écriture sur le champ
_conversation (voir propriété)
}
}
class
Class1
{
[STAThread]
static void Main(string[]
args)
{
Test emetteur = new Test();
emetteur.la_conversation("nous
avons construit dans le plus grand secret un centre de recherche nucléaire");
emetteur.la_conversation("nous pouvons en être fière");
emetteur.arretConnexion();
emetteur.la_conversation("nous avons même déjà effectué les
premiers tests, et ceux-ci s'avèrent très concluant!");
emetteur.la_conversation("ON VA DOMINER LE MONDE ah! ah! ah!");
emetteur.connexionQG();
emetteur.la_conversation("Pour l'instant, personne ne doit être au
courant de notre projet");
Console.ReadLine();
}
}
}
|