之间有什么区别
答案 0 :(得分:8)
基本上,泛型集合在编译时是类型安全的:您指定集合应该包含哪种类型的对象,类型系统将确保您只将这种对象放入其中。此外,当你拿出它时,你不需要施放物品。
举个例子,假设我们想要一个字符串集合。我们可以像这样使用ArrayList
:
ArrayList list = new ArrayList();
list.Add("hello");
list.Add(new Button()); // Oops! That's not meant to be there...
...
string firstEntry = (string) list[0];
但是List<string>
会阻止无效条目和避免播放:
List<string> list = new List<string>();
list.Add("hello");
list.Add(new Button()); // This won't compile
...
// No need for a cast; guaranteed to be type-safe... although it
// will still throw an exception if the list is empty
string firstEntry = list[0];
请注意,泛型集合只是泛型的更一般特性的一个示例(尽管是最常用的集合),它允许您根据它处理的数据类型来参数化类型或方法。
答案 1 :(得分:1)
ArrayList和HashTable类型包含在.Net 1.0中。它们或多或少等同于List和Dictionary。
它们的存在是为了在2.0版本中引入泛型之前与.Net 1.0或1.1中编写的代码保持兼容,如果你的目标是.Net 2.0或更高版本,通常应该避免使用。