在.NET Framework中,有些类使用SomethingCollection
语法。
例如,在处理SqlCommand
时,它具有类型为Parameters
的参数SqlParameterCollection
。由于它没有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? 最佳答案
.NET API公开的许多集合是在.NET 2.0之前设计的,因此是在泛型可用之前设计的。
关于c# - 为什么使用SomethingCollection代替Collection <Something>?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4039144/