In molti dei nostri progetti ho visto alcune raccolte personalizzate o classi di contenitori che contengono una sorta di raccolta generica, ad es. una classe List(of T)
.Quando utilizzare IEnumerable e GetEnumerator?
Di solito hanno un metodo GetXXX che restituisce un oggetto IEnumerable di qualsiasi tipo utilizzato dalla classe di raccolta personalizzata, in modo che la raccolta interna possa essere iterata utilizzando un ciclo foreach.
ad es.
public IEnumerable<UploadState> GetStates
{
get
{
return new List<UploadState>(m_states);
}
}
La mia domanda è che dovrebbe queste classi anziché implementare l'interfaccia IEnumerable
, e chiamare GetEnumerator
nella lista stessa.
C'è un modo preferito, o è lo sviluppatore?
Che cos'è il tipo di m_states? Mi chiedo semplicemente perché è racchiuso da 'new List <>' e restituito come 'IEnumerable <>' – sll
http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.getenumerator.aspx –