2018 – Stats

L’anno che sta terminando è stato particolarmente attivo per quando riguarda la pubblicazione di posts. In collaborazione con la community di programmazione DotNet Tortona ho pubblicato 77 posts nel corso di tutto il 2018.

La pubblicazione dei post è stata piuttosto alta nei primi mesi dell’anno, e poi ha subito un ralletamento nel corso dell’anno.

La mia intenzione per il 2019 è quella di manterere alto il numero (e soprattutto la qualità) delle pubblicazioni.

Grazie a tutti coloro che mi hanno seguito e che mi hanno fornito spunti interessanti per la scrittura di posts .

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