在.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