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