total academia death
This commit is contained in:
parent
9c24fc5375
commit
0d2a941a24
77
Program.cs
Normal file
77
Program.cs
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
class Program
|
||||||
|
{
|
||||||
|
public static void Main()
|
||||||
|
{
|
||||||
|
Enekesno e1 = new Enekesno("Lady Gaga");
|
||||||
|
Enekesno e2 = new Enekesno("Nicki Minaj");
|
||||||
|
Rajongo r1 = new Rajongo("János");
|
||||||
|
Rajongo r2 = new Rajongo("Patrik");
|
||||||
|
Rajongo r3 = new Rajongo("Bogi");
|
||||||
|
e1.Subscribe(r1);
|
||||||
|
e1.Subscribe(r2);
|
||||||
|
e2.Subscribe(r2);
|
||||||
|
e2.Subscribe(r3);
|
||||||
|
e1.SetKovetkezoKoncertHelyszine("Budapest");
|
||||||
|
e2.SetKovetkezoKoncertHelyszine("Eger");
|
||||||
|
}
|
||||||
|
class Enekesno : IObservable<string>
|
||||||
|
{
|
||||||
|
List<IObserver<string>> observer = new List<IObserver<string>>();
|
||||||
|
string kovetkezoKoncertHelyszine;
|
||||||
|
string nev;
|
||||||
|
public Enekesno(string nev) { this.nev = nev; }
|
||||||
|
public string SetKovetkezoKoncertHelyszine(string varos)
|
||||||
|
{
|
||||||
|
kovetkezoKoncertHelyszine = varos;
|
||||||
|
this.notify();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public IDisposable Subscribe(IObserver<string> obs)
|
||||||
|
{
|
||||||
|
observer.Add(obs);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
private void notify()
|
||||||
|
{
|
||||||
|
foreach(var item in observer)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
item.OnNext("szia");
|
||||||
|
item.OnNext("A nevem:");
|
||||||
|
item.OnNext(this.nev);
|
||||||
|
item.OnNext("következő koncert helyszíne:");
|
||||||
|
item.OnNext(this.kovetkezoKoncertHelyszine);
|
||||||
|
item.OnCompleted();
|
||||||
|
}
|
||||||
|
catch (Exception e) { item.OnError(e); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class Rajongo : IObserver<string>
|
||||||
|
{
|
||||||
|
string enekesnoNeve;
|
||||||
|
bool eneksnoNeveFlag = false;
|
||||||
|
string kovetkezoKoncertHelyszine;
|
||||||
|
bool kovetkezoKoncertHelyszineFlag = false;
|
||||||
|
|
||||||
|
string nev;
|
||||||
|
public Rajongo (string nev) { this.nev = nev; }
|
||||||
|
public void OnCompleted()
|
||||||
|
{
|
||||||
|
Console.WriteLine( nev +" Nagyon boldog mert " + enekesnoNeve + " koncertet ad " + kovetkezoKoncertHelyszine + " city-ben:)");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnError(Exception error){}
|
||||||
|
|
||||||
|
public void OnNext(string value)
|
||||||
|
{
|
||||||
|
if(eneksnoNeveFlag) { enekesnoNeve=value; }
|
||||||
|
if(kovetkezoKoncertHelyszineFlag) { kovetkezoKoncertHelyszine=value; }
|
||||||
|
|
||||||
|
if (value.Equals("A nevem:")) { eneksnoNeveFlag = true; }
|
||||||
|
else { eneksnoNeveFlag = false; }
|
||||||
|
if (value is "következő koncert helyszíne:") { kovetkezoKoncertHelyszineFlag= true; }
|
||||||
|
else { kovetkezoKoncertHelyszineFlag = false; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user