Advertisement
fcamuso

Lambda

Mar 26th, 2021
503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.94 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Lambda1
  4. {
  5.  
  6.   class SecuritySystem
  7.   {
  8.     Func<int> Allerta = null;
  9.  
  10.     public SecuritySystem(Func<int> g)
  11.     {
  12.       Allerta = g;
  13.     }
  14.  
  15.     public void SetAllarmeSupplementare(Func<int> allarmeSupplementare)
  16.     {
  17.       Allerta += allarmeSupplementare; //LISTA DI RIFERIMENTI A METODI!
  18.     }
  19.  
  20.     public void Allarme()
  21.     {
  22.       Console.WriteLine(Allerta());
  23.     }
  24.   }
  25.   class Program
  26.   {
  27.     static void UnTipoDiLog(string dati)
  28.     { Console.WriteLine(dati); }
  29.  
  30.     static void UnAltroTipoDiLog(string dati)
  31.     { Console.WriteLine($"----- {dati} ----------"); }
  32.  
  33.     static double ScontoStandard(double cifra)
  34.     { return cifra / 100 * 5; }
  35.  
  36.     static Func<int, int> MetodoFunc()
  37.     {
  38.       int IWillSurvive = 100;
  39.       return x => { IWillSurvive++; return IWillSurvive * x; };
  40.     }
  41.    
  42.     static void Main(string[] args)
  43.     {
  44.       //Func<int, int> Fattoriale = () => x==0 ? 1 : x *
  45.  
  46.       Func<int, int> F = MetodoFunc();
  47.       Console.WriteLine(F(3));
  48.       Console.WriteLine(F(3));
  49.  
  50.       string messaggio = "Admin Avvisato";
  51.       int id = 100;
  52.  
  53.       SecuritySystem sec = new SecuritySystem( () => {
  54.         Console.WriteLine(messaggio); return id;
  55.       });
  56.  
  57.       messaggio = "Autorità competenti avvisate!";
  58.       id = 200;
  59.  
  60.       sec.SetAllarmeSupplementare(() =>
  61.       {
  62.         Console.WriteLine(messaggio); return id;
  63.       });
  64.  
  65.       sec.Allarme();
  66.  
  67.       int n = 100;
  68.       Func<int, int> Quadrato = (int x) => { n++; return x * x; };
  69.       Console.WriteLine(Quadrato(6));
  70.       Console.WriteLine(n);
  71.  
  72.       Func<int>[] Funzioni = new Func<int>[4];
  73.       int i = 0;
  74.       for (i = 0; i < 4; i++)
  75.       {
  76.         int local_i = i;
  77.         Funzioni[local_i] = () =>  local_i * local_i;
  78.       }
  79.  
  80.       //qui la i vale 4
  81.  
  82.       foreach (Func<int> f in Funzioni) Console.WriteLine(f());
  83.       Console.WriteLine(Funzioni[1]());
  84.  
  85.  
  86.     }
  87.   }
  88. }
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement