我查看了一些使用 C# 泛型的示例代码。为什么以及何时应该使用它们?
所有的例子都很复杂。我需要一个简单明了的示例来帮助我开始使用 C# 泛型。
最佳答案
一个非常简单的例子是通用的 List<T>
类(class)。它可以容纳许多任何类型的对象。例如,您可以声明一个字符串列表 (new List<string>()
) 或一个动物列表 (new List<Animal>()
),因为它是通用的。
如果不能使用泛型怎么办?你可以使用 ArrayList
类,但缺点是它包含的类型是 object
.因此,当您遍历列表时,您必须将每个项目转换为正确的类型(string
或 Animal
),这需要更多代码并且会降低性能。另外,由于 ArrayList
持有对象,它不是类型安全的。您仍然可以添加 Animal
到ArrayList
字符串:
ArrayList arrayList = new ArrayList();
arrayList.Add(new Animal());
arrayList.Add("");
因此,在迭代 ArrayList 时,您必须检查类型以确保实例属于特定类型,这会导致代码不佳:
foreach (object o in arrayList)
{
if(o is Animal)
((Animal)o).Speak();
}
使用通用的 List<string>
,这根本不可能:
List<string> stringList = new List<String>();
stringList.Add("Hello");
stringList.Add("Second String");
stringList.Add(new Animal()); // error! Animal cannot be cast to a string
关于c# - 更好地理解 C# 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606595/