使用泛型的优势在于它增加了类型的安全性 - 你只能放入正确类型的东西,并且你可以在不需要演员的情况下获得正确的类型.我不能使用泛型集合的唯一原因是你需要存储一些任意数据.我错过了什么吗?在处理集合时,还有哪些其他原因不使用泛型?
如果您需要存储任意数据,请使用List
(或其他).然后绝对清楚它是故意任意的.
除此之外,我不会将非泛型集合用于任何事情.我已经使用过IEnumerable
,IList
当我一直在转换object
引用时并且不知道在编译时将其转换为类型 - 所以非泛型接口有时很有用......但不是非泛型类本身.
显而易见的另一个原因是使用不使用泛型集合的代码(可能是遗留的).
您可以在.NET本身中看到这种情况.System.Windows.Form.Control.Controls
不是通用的,也不是System.Web.UI.Control.Controls
.