You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mchsamples-.net-core/ex_029_001_event_Broadcaste.../Program.cs

51 lines
2.1 KiB

// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-10-03
//
// ========================================================================
using System.Text;
using static System.Console;
namespace Broadcaster_Subscriber
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = Encoding.Unicode;
//création d'un diffuseur
Broadcaster info_sport = new Broadcaster("Info Sport");
info_sport.Info = "Toulouse s'impose face à Toulon 32 à 9";
//deux instances d'Subscriber s'abonnent à l'instance de délégué info_sport.Informer
Subscriber arthur = new Subscriber("Arthur");
arthur.Abonnement(info_sport);
info_sport.Info = "Grenoble domine le Racing-Metro 27 à 13";
Subscriber richard = new Subscriber("Richard");
richard.Abonnement(info_sport);
//une nouvelle info tombe, l'appel du setter de la propriété Broadcaster.Info va exécuter les méthodes pointées par l'instance
// de délégué info_sport.Informer, soit arthur.RecevoirInfo et richard.RecevoirInfo
info_sport.Info = "L'ASM bat le Stade Français 28 à 25";
//Informer("L'ASM bat le Stade Français 28 à 25", DateTime.Now);
// <=> arthur.RecevoirInfo("L'ASM bat le Stade Français 28 à 25", DateTime.Now);
// richard.RecevoirInfo("L'ASM bat le Stade Français 28 à 25", DateTime.Now);
WriteLine();
//arthur désabonne richard et s'abonne tout seul
arthur.DésabonnerToutLeMondeSaufMoi(info_sport);
//un nouvelle info tombe, arthur reçoit l'info mais pas richard
info_sport.Info = "La Nouvelle-Zélande gagne le Four Nations en battant l'Argentine 54 à 15";
}
}
}