C# Generics – Considerazioni

Nei precedenti post sono stati introdotte alcune interfacce presenti all’interno di System.Collections, che possono essere implementate per funzionalità specifiche come la gestione di liste, dictionary e set.

L’utilizzo di queste interfacce specializzate e delle loro relative implementazioni ha la particolarità di non essere thread-safe: tutto questo si traduce nella possibilità di poter effettuare accessi in lettura contemporanemente (anche se non sempre è possibile) e nell’impossibilità di effettuare operazioni di scrittura con attività concorrenti.

Continua a leggere C# Generics – Considerazioni

C# Generics – Prima parte

Il Framework .NET definisce le classi per le collections all’interno di System.Collections e, per i generics all’interno di System.Collections.Generics. L’introduzione delle collections generiche è avvenuta a partire dalla release 2.0 del framework .NET e con il rilascio di C# 2.0.

Generics

L’interfaccia base da cui partire è IEnumerable<T> che consente di effettuare l’iterazione sugli elementi, ad esempio utilizzando il metodo foreach.

L’interfaccia ICollection<T> eredita da IEnumerable<T> e ne aggiunge i metodi per effettuare il Count degli elementi e per modificarli: Add<T>, Remove<T>, Clear() .

Attraverso queste due interfacce è possibile implementare una semplice collection di elementi, ma il framework mette a disposizione alcune interfacce, che ereditano sempre da IEnumerable<T> ma aggiungendone funzionalità specifiche: IList<T>, ISet<T>, IDictionary<TKey, TValue>.

Continua a leggere C# Generics – Prima parte