Untitled

By Ivory Goose, 6 Years ago (2013-03-07 14:39:27), written in Plain Text, viewed 344 times.
URL https://paste.godclan.hu/view/9xgcZrhc Embed
Download Paste or View RawExpand paste to full width of browser
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     interface IHivasFigyelo
  9.     {
  10.         void BejovoHivasTortent(Telefon fogado, string forrasTelefonszam);
  11.         void KimenoHivasTortent(Telefon kuldo, string celTelefonszam);
  12.     }
  13.     interface IEgyenleggelRendelekezik
  14.     {
  15.         void EgyenlegFeltoltes(int osszeg);
  16.         int Egyenleg { get; }
  17.     }
  18.     delegate void HivasEsemeny(Telefon t, string telefonszam);
  19.     delegate void EgyenlegAlacsony(IEgyenleggelRendelekezik kuldo, int szukseges);
  20.     class Telefon : IEgyenleggelRendelekezik
  21.     {
  22.         static int iHivasDij = 5;
  23.         string telefonszam;
  24.         public string Telefonszam
  25.         {
  26.             get { return telefonszam; }
  27.         }
  28.         int egyenleg;
  29.         public int Egyenleg
  30.         {
  31.             get { return egyenleg; }
  32.         }
  33.         //IHivasFigyelo hivasFigyelo;
  34.         //List<IHivasFigyelo> hivasFigyelok = new List<IHivasFigyelo>();
  35.         public event HivasEsemeny BejovoHivasFigyelo;
  36.         public event HivasEsemeny KimenoHivasFigyelo;
  37.         public event EgyenlegAlacsony EgyenlegAlacsonyFigyelo;
  38.         public Telefon(string telefonszam)
  39.         {
  40.             this.telefonszam = telefonszam;
  41.             egyenleg = 0;
  42.         }
  43.         public void EgyenlegFeltoltes(int osszeg)
  44.         {
  45.             egyenleg += osszeg;
  46.         }
  47.         //public void FigyeloRegisztral(IHivasFigyelo f)
  48.         //{
  49.         //    //hivasFigyelo = f;
  50.         //    hivasFigyelok.Add(f);
  51.         //}
  52.         //public void FigyeloTorles(IHivasFigyelo f)
  53.         //{
  54.         //    hivasFigyelok.Remove(f);
  55.         //}
  56.         private void HivasFogadas(Telefon forras)
  57.         {
  58.             //if (hivasFigyelo != null)
  59.             //    hivasFigyelo.BejovoHivasTortent(this, forras.Telefonszam);
  60.             //foreach(IHivasFigyelo f in hivasFigyelok)
  61.                 //f.BejovoHivasTortent(this, forras.Telefonszam);
  62.             if(BejovoHivasFigyelo != null)
  63.                 BejovoHivasFigyelo(this, forras.Telefonszam);
  64.         }
  65.         public bool HivasKuldes(Telefon cel)
  66.         {
  67.             if((egyenleg - iHivasDij) <= iHivasDij && EgyenlegAlacsonyFigyelo != null)
  68.                 EgyenlegAlacsonyFigyelo(this, iHivasDij);
  69.             if (egyenleg >= iHivasDij)
  70.             {
  71.                 //if (hivasFigyelo != null)
  72.                 //    hivasFigyelo.KimenoHivasTortent(this, cel.Telefonszam);
  73.  
  74.                 //foreach (IHivasFigyelo f in hivasFigyelok)
  75.                 //f.KimenoHivasTortent(this, cel.Telefonszam);
  76.                 if(KimenoHivasFigyelo != null)
  77.                     KimenoHivasFigyelo(this, cel.Telefonszam);
  78.  
  79.                 cel.HivasFogadas(this);
  80.  
  81.                 egyenleg -= iHivasDij;
  82.                 return true;
  83.             }
  84.             return false;
  85.         }
  86.         public override string ToString()
  87.         {
  88.             return telefonszam;
  89.         }
  90.     }
  91.     class HivasNaplo : IHivasFigyelo
  92.     {
  93.  
  94.         public void BejovoHivasTortent(Telefon fogado, string forrasTelefonszam)
  95.         {
  96.             Console.WriteLine("[{0}] bejovo hivas: {1}", fogado, forrasTelefonszam);
  97.         }
  98.  
  99.         public void KimenoHivasTortent(Telefon kuldo, string celTelefonszam)
  100.         {
  101.             Console.WriteLine("[{0}] kimeno hivas: {1}", kuldo, celTelefonszam);
  102.         }
  103.         public void Regisztral(Telefon t)
  104.         {
  105.             t.BejovoHivasFigyelo += new HivasEsemeny(BejovoHivasTortent);
  106.             t.KimenoHivasFigyelo += new HivasEsemeny(KimenoHivasTortent);
  107.             t.EgyenlegAlacsonyFigyelo += new EgyenlegAlacsony(EgyenlegAlacsonyFigyelo);
  108.         }
  109.  
  110.         void EgyenlegAlacsonyFigyelo(IEgyenleggelRendelekezik kuldo, int szukseges)
  111.         {
  112.             Console.WriteLine("[{0}] egyenleg alacsony: {1}, szukseges: {2}", kuldo, kuldo.Egyenleg, szukseges);
  113.             kuldo.EgyenlegFeltoltes(szukseges);
  114.         }
  115.  
  116.     }
  117.     delegate void banan(int ii);
  118.     class Program
  119.     {
  120.         static void Main(string[] args)
  121.         {
  122.             HivasNaplo naplo = new HivasNaplo();
  123.             Telefon t = new Telefon("123456"), h = new Telefon("654321");
  124.             //t.FigyeloRegisztral(naplo);
  125.             //h.FigyeloRegisztral(naplo);
  126.             //naplo.Regisztral(t);
  127.             //naplo.Regisztral(h);
  128.             h.EgyenlegFeltoltes(54654);
  129.             t.EgyenlegFeltoltes(44);
  130.             while (t.HivasKuldes(h)) ;
  131.             h.HivasKuldes(t);
  132.             /*
  133.             banan f = new banan(Program.a) +94+4+4++new banan(Program.b);
  134.             f(8465);
  135.             IAsyncResult r = f.BeginInvoke(474, null, null);
  136.             IAsyncResult j = f.BeginInvoke(111, null, null);
  137.             while (!r.IsCompleted || !j.IsCompleted) System.Threading.Thread.Sleep(0);
  138.             */
  139.            
  140.         /*
  141.             jn v = delegate(){ return 86; };
  142.             Console.WriteLine(v());*/
  143.            
  144.         }
  145.         static void a(int ii)
  146.         {
  147.             Console.WriteLine("a: {0}", ii);
  148.             if (ii < 1000)
  149.             {
  150.                 for (int i = 1; i < 200; i++)
  151.                 {
  152.                     Console.WriteLine("{0} {1}", ii, i);
  153.                 }
  154.             }
  155.         }
  156.         static void b(int ii)
  157.         {
  158.             Console.WriteLine("b: {0}", ii);
  159.         }
  160.     }
  161. }
  162.  

Reply to "Untitled"

Here you can reply to the paste above