[C# Story] – Automatically Implemented Properties and Object Initializers

Le features del C#3.0 prevedono anche la possibilità di implementare automaticamente le proprietà di una classe per cui è previsto il semplice pattern della richiesta della proprietà (get) e della sua impostazione (set).Esempio in c#2.0:

 public class Point {
 	private int x;
	private int y;
        // old version
	public int X { get { return x; } set { x = value;} }
        public int Y { get { return y; } set { y = value; } }

        // new version
	public int X { get; set; }
        public int Y { get; set; }
	// creo un override del metodo ToString()
        public override string ToString() {
            return X + " - " + Y ;
        }
}

Ovviamente resta possibile modificare l’accessor alle proprietà della classe attraveerso i soliti modificatori di accessibilità (Private,Public, etc.) per rendere ad esempio la proprietà della classe di sola lettura o scrittura.

Accanto a queste funzionalità si colloca la “Object and Collection Initializers” che permette di inizializzare oggetti e collection in maniera semplice e di facile lettura:

            //old version
            Point p1 = new Point();

            p1.X = 1;
            p1.Y = 2;

            //new version
            Point p2 = new Point { X = 1, Y = 2 };

In questo ambito si colloca anche la Collection Initializers che permette, per tutti gli oggetti che implementano la System.Collections.Generic.IEnumerable<T> e forniscono un metodo Add, di inizializzare gli oggetti stessi nel seguente modo:

             List<Point> Square = new List<Point> 
            { 
                new Point { X=0, Y=5 }, 
                new Point { X=5, Y=5 },
                new Point { X=5, Y=0 },
                new Point { X=0, Y=0 }
            };

che si scorre in questo modo:

             foreach (Point  p in Square ) {
                Console.Write(p.ToString());  
            }

Come possiamo vedere le nuove features semplificano parecchio le operazioni comuni di noi sviluppatori anche se, finora, sono riuscite a vederle in parte, direi che l’inizio non è male 😉

Annunci

Informazioni su pythonyan

.Net Solution Developer at Be Smart
Questa voce è stata pubblicata in [C# Story] e contrassegnata con . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...