在.NET Framework中,有一些使用SomethingCollection
語法的類。爲什麼使用SomethingCollection代替Collection <Something>?
例如,在處理SqlCommand
時,它具有SqlParameterCollection
類型的參數Parameters
。因爲它不具備的IEnumerable<SqlParameter>
(或IList<SqlParameter>
或類似的東西)形式,它是不可能寫:
foreach (var c in sqlCommand.Parameters)
{
Debug.WriteLine(string.Concat(c.ParameterName, ": ", c.Value));
}
相反,var
必須進行明確的SqlParameter
所取代。
處理Windows窗體控件(列表視圖項目的集合等)時,事情非常相似,並且存在於其他類中。
這是什麼東西?爲什麼存在這樣的類,並用它代替泛型IEnumerable
s/IList
s?
主要是因爲泛型不存在於vanilla .NET – 2010-10-28 02:00:16