如果我通過集合屬性通過暴露內部成員:是否收集<T>包裝IList <T>或枚舉IList <T>?
public Collection<T> Entries
{
get { return new Collection<T>(this.fieldImplimentingIList<T>); }
}
當這個屬性被稱爲會發生什麼?例如會發生什麼時,下面的代碼行稱爲:
T test = instanceOfAbove.Entries[i];
instanceOfAbove[i] = valueOfTypeT;
很清楚,每次這個屬性被稱爲一個新的參考類型創建的,但什麼acctually發生什麼呢?它是否簡單包裝下面的IList<T>
,是否列舉了IList<T>
並創建了一個新的Collection<T>
實例?如果在for
循環中使用此屬性,我擔心性能。
'系列'包裝'IList '。你爲什麼把它作爲Collection 返回?爲什麼不把它公開爲IEnumerable ?你是否試圖阻止修改底層列表? –
感謝您的提問!我沒有想到Collection只是一個包裝清單;) –