A Ovest Di Paperino

Welcome to the dark side.

Refuctoring in C# 3.0

Con la nuova versione del linguaggio C# (3.0) rilasciata con Visual Studio sono state introdotte alcune nuove sintassi che, secondo la mia personale teoria che il codice "compatto" sia scarsamente leggibile, rendono il refuctoring un gioco da ragazzi. Ne elenco alcune:

Variabili locali tipizzate implicitamente
Un esempio vale più di mille parole:

var i = 10; // i è un int
var j = "hello" // j è una string

Si ottengono molti punti refuctoring se la dichiarazione var è usata per definire il valore di ritorno di una funzione:

var p = MyFunction(); // cos'è p???

Proprietà automatiche
Per guadagnare un po' di punti refuctoring basta dichiarare una proprietà automatica nelle vicinanze di una astratta:

public string PetName { get; set; }
public abstract int PetAge { get; set; }

La differenza subdola ingannerà il lettore più attento

Extension Methods
È ora possibile aggiungere metodi a classi predefinite. La faccia del lettore che si trovi davanti al seguente pezzo di codice sarà impagabile:

int i = 0;
int j = i.DoSomeMagic(); //  

Tipi anonimi
È ora possibile definire, grazie alla keyword var, un tipo anonimo al volo:

var myPerson = new { Name = "Foo" };

Lambda
La classica ciliegina sulla torta, soprattutto se accoppiata alla keyword var (ancora tu?):

var evenNumbers = list.FindAll(i => (i % 2) == 0);

Nel mio team è stato chiaramente stabilito che eventuali abusi da C# 3.0 verranno corporalmente puniti.

-quack

Technorati Tags: