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

10-12 12:18