Coach


In pieno rock ".net" roll
Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Collection Tipizzate

Quando si creano delle applicazioni multi-tier spesso nello strato di Business Logic per mappare i dati io creo delle collection fortemente tipizzate per poter rappresentare i miei oggetti di businesse dovendo poi fare il binding con oggetti quali datagrid, combobox(dropdownlist) ecc.

Microsoft per le collection fortemente tipizzate consiglia di ereditare da CollectionBase quindi vi faccio vedere come funziona con un esempio reale.

CollectionBase è una classe presente nel namespace System.Collection ed implementa l'nterfacce ICollection, IList e IEnumerable.
Come vedete proprio l'interfaccie che servono per creare le collectione quelle per fare il binding con winform(IList) e con le webForm(IEnumerable).

Al suo interno collectionbase tiene un ArrayList dove memorizza gli oggetti.
Faccio un esempio
Quando creo degli oggetti di business creo sempre l'interfaccia così da essere più dinamica e poter creare più oggetti che implementano tale interfaccia.

Ho un 'interfaccia IAttivita così fatta

public
interface IAttivita
{

     Int64 IdAttivita{
get;set;}
     string Descrizione{get;set;}
     DateTime DataAttivita{
get;set;}
    string SedeAttivita{get;set;}
    Int32 IdTipoAttivita{
get;set;}
}
// end class - IAttivita

Chiaramente una classe Attivita che la implementa.
Ora nella mia collection che chiamo AttivitaCollection come da guida microsoft
Devo definire i metodi che mi permetto di trattare l'oggetto IAttivita nella collection

public
IAttivita Item(Int32 index)
{
    return (IAttivita)List[index];
}
public Int32 Add(IAttivita item)
{
    return List.Add(item);
}
public void Insert(int index, IAttivita item)
{
   List.Insert(index,item);
}
public void Remove(IAttivita item)
{
   List.Remove(item);
}
public bool Contains(IAttivita item)
{
   return List.Contains(item);
}
public int IndexOf(IAttivita item)
{
 return List.IndexOf(item);
}

Come potete vedere lavoro con LIST che sarebbe l'arraylist della collectionbase e aggiungo/rimuovo il mio oggetto IATTIVITA.
Unico problema e che non esiste l'ereditarietà multipla quindi  ricordatevi che quando ereditate da CollectionBase non potete utilizzare nessuna altra classe, in tale caso vi conviene implementare da voi ICollection,IList,IEnumeralbe.

Qualcuno utilizza collectionBase? cosa ne pensa? aspetto dei vostri commenti!
Categoria: .NET 1.1
lunedì, 04 lug 2005 Ore. 14.13
  • Views Home Page: 246.864
  • Views Posts: 683.236
  • Views Gallerie: 306.767
  • n° Posts: 484
  • n° Commenti: 275












Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003