LaConoscenza.NET
Header
Scopri il temperamento e carattere con Psycoroscopo Acquario Pesci Ariete Toro Gemelli Cancro Leone Vergine Bilancia Scorpione Sagittario Capricorno
Fondazione
Fondazione
Bambini Orfani   di Papà Vivo
Programming
Programming
Framework dotnet e Sql Server
Psicologia
Psicologia
Viaggio nella Mente
Evolution 2.0
Evolution 2.0
Innovativo Blog Engine
News
News
Informazioni e notize web
In Italia, un bambino su TRE viene condannato ad essere orfano di GENITORE VIVO.

Lambda Expression

Visualizza l'intero eBook Introduzione a Linq  

Le lambda expression consentono di semplificare la sintassi dei metodi anonimi, una sintassi molto utilizzata nelle query expression in Linq nei due seguenti casi:

  • per specificare i predicati nelle condizioni dei filtri.
  • per fare la proiezione dei risultati di una select, cioè prendere i dati da una struttura per proiettarli in un’altra, con un formato differente.

 La lambda expression è un modo per creare funzioni on-line. Si compone di tre parti:

  • un elenco di parametri compresi in una coppia di parentesi tonde (sono facoltative se il parametro è uno solo), per i quali può essere o meno indicato il tipo corrispondente.
  • l'operatore =>;
  • una espressione, un'istruzione o un blocco di codice, che usa i parametri e che fornisce un valore di ritorno.

La lambda expression deve essere all’interno di un’assegnazione o di una chiamata ad una funzione. Per meglio comprendere, consideriamo il seguente esempio:

      delegate int funz (int a, int b);           // prototipo necessario per dichiarare i tipi
      funz f = delegate (int a, int b) { return a+b; } ;  // assegna ad f, di tipo funz e il codice
      int  j =  f (5, 6);
                // esegue la somma fra 5 e 6

      delegate (int a, int b) { return a+b; }  questa espressione puo essere semplificata
      (int a, int b) => { return a+b; }     la keyword delegate  può essere sostituita da =>
      (a, b) => { return a+b; }   è possibile rimuovere i tipi, il compilatore li ricava dal contesto

Fra le parentesi graf è possibile avere qualsiasi numero di istruzioni, ma se vi è solo un return è possibile effettuare la seguente ulteriore semplificazione formale:

         (a, b) => a + b    // il punto e virgola non ci vuole perché è una semplice espressione

L’espressione Lambada inizia con la definizione delle variabili passate al delegate (dichiarate a sinistra dell’operatore =>), mentre a destra viene definita la logica elaborata per ogni elemento o l’operazione che si vuole eseguire.

int[] nums = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 };
int singleNum = nums.Single(x => (x > 16  &&  x < 64));

Nel precedente esempio è stato utilizzato, nell’elaborazione, un operatore di query, detta anche proprietà di esplorazione, applicato ad un array di integer. Quindi per molti aspetti le lambda expression sono equivalenti agli anonymous methods, ma consentono definizioni più compatte e funzionali. La loro principale utilità consiste nella possibilità di passare come parametro a un metodo, il nome di una funzione.

Data Inserimento Post 20/01/2009 23:38:43  |  Social Bookmark
  • Digg
  • del.icio.us
  • Google
  • Yahoo
  • Technorati
  • Facebook
  • OKNOtizie
  • Email
Title I Commenti sono Disabilitati
Software Free
Software Free
Download i migliori software gratis
I migliori blog
I migliori blog
Notizie e articoli dai migliori Blog
Senso di Te
Senso di Te
Raccolta Poesie di Antonio Sammartino
Test Psicologico
Test Psicologico
Test sul Desiderio Femminile
Sogni e Numeri
Sogni e Numeri
Interpretazione dei Sogni in Numeri
Test Psicologico
Test Psicologico
Calcola l'Affinità di Coppia