vediamo oggi come creare e gestire una lista di elementi personalizzata in c#. l’oggetto List infatti ha il grande pregio di essere anche una classe generica, ovvero noi siamo in grado di creare con esso ad esempio una lista di soli interi (non che serva a molto, ma è solo un esempio
). vediamo allora come creare la classe:
public class EventList : List<int>
{
}
Supponiamo ora di voler sapere dall’esterno quando viene aggiunto (o rimosso!) un oggetto nella lista. La cosa è molto semplice, infatti, grazie alla parola chiave new possiamo creare una estensione dei metodi Add(), Remove(), Clear() ecc. ecc. in questo modo noi possiamo “estendere” questi metodi e a questo punto scatenare un nostro evento. vediamo come:
public class EventList : List</int><int>
{
public event EventHandler ElementoAggiunto;
public new void Add(int item)
{
base.Add(item);
OnElementoAggiunto();
}
private void OnElementoAggiunto()
{
if (ElementoAggiunto != null)
ElementoAggiunto(this, EventArgs.Empty);
}
}
come abbiamo visto è semplicissimo! la chiave è tutta nella parola new, che istruisce il compilatore dicendogli che quella funzione andrà a nascondere la funzione con la medesima signature della classe madre, creando così il polimorfismo. ora andiamo nel main, dichiariamo una variabile del tipo EventList:
static void Main(string[] args)
{
EventList lista = new EventList(); lista.ElementoAggiunto += new EventHandler(lista_ElementoAggiunto);
}
adesso siamo agganciati all’evento: ogni qualvolta che verrà aggiunto un elemento alla lista verrà scatenato l’evento e sarà gestito dalla funzione lista_ElementoAggiunto.
Mi chiamo Denis Billi, ho 25 anni e sono della provincia di Ravenna. Mi sono laureato nell'estate del 2008 presso la facoltà di Ingegneria Informatica dell'università di Bologna e attualmente sto seguendo i corsi per la Laurea Specialistica in Ingegneria Informatica sempre all'università di Bologna.
Bello ‘sto articolo! Complimenti per il blog! ;)
saluti,
emar
Ti ringrazio per i complimenti! Sto cercando di scrivere articoli che possano essere utili ad un vasto numero di persone, ed i vostri complimenti non fanno altro che invogliarmi a scrivere ancora. Torna presto! Ciao!