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

Interfacce custom e generics

Nell’articolo precedente abbiamo introdotto i generics.  In questo nuovo articolo introduciamo le interfacce generiche.

Nulla di particolarmente complesso, è sufficiente definire nel modo tradizionale l’interfaccia, indicando però un parametro generico:

Continua a leggere Interfacce custom e generics

I generics c#

I generics consentono di sviluppare parti di codice independenti dal tipo dei dati e trovano la loro naturale applicazione nel riuso del codice.

Un contenitore di oggetti generici è indipendente dal tipo utilizzato: gli oggetti generici consentono di scrivere codice una sola volta e di poterlo riutilizzare con tutte le tipologie di dato passato in ingresso.

In questo articolo descriveremo come implementare classi / metodi generici.

Quando si crea un’istanza di una classe generica è necessario indicare il tipo dell’oggetto che dovrà essere gestito: l’indicazione viene data utilizzando il segnaposto generico T.

Continua a leggere I generics c#