Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Una panoramica delle specifiche C# 3.0 (1/5)
Scritto da Paolo De Nictolis il 23-01-2007 ore 08:59
Intel Cluster Studio XE
Le specifiche di C# 3.0 sono state rilasciate sin da maggio 2006, in una versione per la community aperta alla discussione, e come capitolo aggiuntivo - il 26esimo - di una trentina di pagine, alle specifiche attuali. Molte delle novità riguardano, naturalmente, LINQ - l'insieme di estensioni a C# che consentirà di effettuare query alle sorgenti dati direttamente dal linguaggio, eliminando il conflitto d'impedenza fra codice e DBMS o store dati generico, fra cui XML - ed i suoi componenti: lambda expressions, query expressions ed expression trees. Ma procediamo con ordine. Innanzitutto, le estensioni proposte sono totalmente compatibili con C# 2.0, e mirano a supportare la creazione di librerie di classi che seguano il paradigma della programmazione funzionale.

Oltre a quelle per LINQ già citate, le estensioni comprendono: variabili locali implicitly typed, ovvero il cui tipo può essere inferito dalle espressioni usate per inizializzarle; metodi per l'estensione dei tipi attuali con nuovi metodi e per la creazione di nuovi tipi; inizializzatori di oggetto - object initializers - che facilitano la creazione e l'inizializzazione di oggetti; tipi anonimi, collegati agli inizializzatori di oggetto; array implicitamente tipati, che inferiscono anch'essi il tipo da appositi array initializer. Ognuno dei topic delle specifiche richiede, naturalmente, qualche esempio. Cominciamo con le variabili locali implicitamente tipizzate: si tratta di un meccanismo, analogo a quello usato da PHP, che inferisce il tipo di una variabile – genericamente dichiarata con la parola chiave
  1. var
– a partire dal suo valore; così per esempio il compilatore del prossimo Visual Studio – il già ben noto Orcas – tratterà le seguenti dichiarazioni:
  1. var i = 5;
  2. var s = “Mustang: dead before born”;
  3. var d = 1.0;
  4. var numbers = new int[] {1, 2, 3};
  5. var orders = new Dictionary<int,Order<();


come se nel codice fosse stato scritto:
  1. int i = 5;
  2. string s = “Mustang: dead before born”;
  3. double d = 1.0;
  4. int[] numbers = new int[] {1, 2, 3};
  5. Dictionary<int,Order> orders = new Dictionary<int,Order>();

Naturalmente, questa caratteristica è soggetta ad alcune restrizioni oltre a quella, ovvia, dell'inizializzazione della variabile - non potremo in alcun modo scrivere un semplice
  1. var x;
: l'inizializzatore deve essere un'espressione - non può essere un oggetto o una Collection -; il suo tipo a tempo di compilazione non può essere
  1. null
; e se si inizializzano più variabili contemporaneamente, queste devono avere lo stesso tipo a compilazione: in parole povere, è illegale una dichiarazione del tipo:
  1. || genera un errore a compile-time
  2. var iCounter, sGreeting, arrMonths = 1, “Hello P.it people!”, new string[] {“Gennaio”, “Febbraio”, “Marzo”};
Precedente: Oracle Database 10g: le caratteristiche di Database Management.
Successiva: Linux Kernel in a Nutshell, ancora un libro free
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.287 secondi.