0
A
回答
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
ArrayList和HashTable类型包含在.Net 1.0中。它们或多或少等同于列表和字典。
它们都存在与2.0版本中的泛型引入之前保持与.Net 1.0或1.1中编写的代码的兼容性,如果您的目标是.Net 2.0或更高版本,通常应该避免这种情况。
相关问题
- 1. 泛型列表
- 2. Java泛型与列表
- 3. WebDataGrid与泛型列表
- 4. 泛型与数组列表
- 5. 像泛型列表
- 6. 对泛型列表
- 7. 泛型子列表
- 8. C#泛型列表
- 9. 如何使用泛型类型的泛型列表泛型类
- 10. 将泛型列表转换为非泛型列表有什么含义?
- 11. C#列表泛型扩展方法vs非泛型
- 12. 列表泛型和铸造
- 13. 泛型列表和反思
- 14. Console.WriteLine和泛型列表
- 15. 组合2泛型列表
- 16. 泛型列表转换
- 17. OrderBy Lambda的泛型列表
- 18. 泛型的通用列表
- 19. 2泛型列表分配
- 20. LINQ支持泛型列表
- 21. 一个泛型列表
- 22. 通用泛型列表
- 23. C++泛型列表分配
- 24. 对泛型列表的
- 25. 泛型列表和通用阵列
- 26. 总和泛型列表的列匿名
- 27. Groovy的CompileStatic与泛型列表
- 28. 混合LINQ与泛型列表
- 29. 与非泛型实现泛型类型
- 30. 泛型列表方法指定类型