Se sono esponendo un membro interno tramite una proprietà della raccolta tramite:Una collezione <T> esegue il wrapping di un IList <T> o enumerazione tramite IList <T>?
public Collection<T> Entries
{
get { return new Collection<T>(this.fieldImplimentingIList<T>); }
}
Quando questa proprietà viene chiamato cosa succede? Ad esempio ciò che accade quando le seguenti righe di codice sono chiamati:
T test = instanceOfAbove.Entries[i];
instanceOfAbove[i] = valueOfTypeT;
È chiaro che ogni volta questa proprietà viene chiamata viene creato un nuovo tipo di riferimento ma cosa succede acctually? Rende semplicemente il IList<T>
al di sotto, si enumera sopra lo IList<T>
e per creare una nuova istanza Collection<T>
? Sono preoccupato per le prestazioni se questa proprietà viene utilizzata in un ciclo for
.
'Collezione' esegue il wrapping 'IList '. Perché lo stai restituendo come collezione ? Perché non esporlo come IEnumerable ? Stai cercando di impedire la modifica dell'elenco sottostante? –
Grazie per la domanda! Non ho pensato che Collection sia solo un wrapper sulla lista;) –