Oggi, alla release 3.5 del .NET framework, assistiamo ad una evoluzione del linguaggio a dir poco sconvolgente! Lo dico in senso positivo da un certo punto di vista, in senso negativo da un altro:
Lati positivi dell'evoluzione del linguaggio C#
- Aggiunte features che permettono di modellare il software in maniera più flessibile, vedasi generics con constraints;
- Aggiunte features che semplificano la realizzazione di pattern comuni in maniera meno verbosa, vedasi iteratori e delegate.. anche se già dalla prima versione;
- Aggiunti strumenti per la cooperazione tra sviluppatori, vedasi classi e metodi parziali.
- Metodi estesi, non hanno ancora un corrispettivo nell'esperienza comune (pattern che li vedano come strumento da utilizzare realmente);
- Metodi partial: si tratta in fondo di metodi virtual non puri ma senza codice (solo più efficienti.. ma i compilatori d'oggi risolvono anche quel problema!);
- generics: ancora problemi con i vincoli, da aggiungere features in questo caso:
class Classe
where T: operator > {...}