Validare gli Item di una collection

di Stefano Mostarda, in .NET,

Quando si crea una collection tipizzata in .net 1.x (santi Generics ma quanto mi mancate in questi casi) gli elementi che possono essere inseriti, possono essere solo del tipo specificato. Questo non è del tutto vero, o meglio è del tutto vero solo nel caso si implementino alcuni metodi.

Prendiamo questo esempio:

public class Item{

public string sz1;

public string sz1;

}

public class ItemEx : Item{}

Se creiamo una collection tipizzata che accetta oggetti Item, potremo ugualmente inserire oggetti ItemEx, in quanto derivanti da Item.

Questo può essere un problema. La soluzione più "barbara" (la cito solo perchè l'ho vista nel codice di alcune persone) è quella di mettere un controllo ad ogni metodo della collection. Quella più veloce, elegante e potente, invece, è quella di eseguire l'override di un metodo protetto: OnValidate.

protected override void OnValidate( Object value){

if (value.GetType() != typeof(Item))

throw new ArgumentException ("Tipo di input errato");

}

Questo metodo viene chiamato ogni volta che viene modificata la collection e quindi basta inserire qui il codice di controllo ed il gioco è fatto. Carino no? :)

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese