CollectionBase e OnValidate

Quando codifico mi piace usare le collezioni tipizzate, il metodo più veloce è usare "STC Generator" di Pierre oppure andare su MSDN alla voce "CollectionBase class",  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionscollectionbaseclasstopic.asp, copiare e incollare la classe di esempio (una collectionBase di Int16) e fare replace di Int16 con il tipo di cui voglio creare la collezione. Ma è sufficiente? No, a mio parere occorre sistemare anche il metodo OnValidate.

L'esempio MSDN inviterebbe a scrive:

  protected override void OnValidate( Object value )  {
      if ( value.GetType() != Type.GetType("MyNamspace.MyType") )
         throw new ArgumentException( "value must be of type MyType.", "value" );
   }

Che bruttura dico io! :( Io prefesisco scrivere:

  protected override void OnValidate( Object value )  {
      if ( !(value is MyType )) //Errata korrige: nella prima versione di qsto post mankava il "!" :-p
         throw new ArgumentException( "value must be of type MyType.", "value" );
  }

L'operatore Is, http://msdn.microsoft.com/library/ita/default.asp?url=/library/ITA/csref/html/vclrfispg.asp, oltre che essere più elegante funziona meglio nel caso voglio aggregare nella collezione oggetti non solo che sono del mio tipo ma anche che lo estendono. L'esempio dell'MSDN limita la collezione al solo tipo _preciso_ ma per chi fa uso del polimorfismo, qui una definizione semplice e veloce di qllo ke intendo, questo è un limite fastidioso.

So bene che questo è una considerazione che con la versione 2.0 sarà obsoleta perchè grazie ai generics con una riga di codice avremo già la ns bella collezione tipizzata :-D

posted @ lunedì 4 luglio 2005 10.45

Print

Comments on this entry:

# re: CollectionBase e OnValidate

Left by Lorenzo Barbieri at 04/07/2005 10.49
Gravatar
Non manca un ! ?

# re: CollectionBase e OnValidate

Left by M.rkino at 04/07/2005 10.51
Gravatar
korretto, grazie lorenzo :-D

# re: CollectionBase e OnValidate

Left by Massimo Prota at 04/07/2005 19.25
Gravatar
Anche a me piace lavorare tipizzato e uso spesso l'add-in di Pierre o, per cose un po' più complesse, CodeSmith.
La tecnica del copia e incolla da MSDN non l'avevo mai considerata; comunque ottima osservazione ;)

Your comment:



 (will not be displayed)


 
 
 
Please add 3 and 1 and type the answer here:
 

Live Comment Preview:

 
«febbraio»
domlunmarmergiovensab
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910