gpt4 book ai didi

c# - 更好地理解 C# 泛型

转载 作者:IT王子 更新时间:2023-10-29 04:17:56 27 4
gpt4 key购买 nike

我查看了一些使用 C# 泛型的示例代码。为什么以及何时应该使用它们?

所有的例子都很复杂。我需要一个简单明了的示例来帮助我开始使用 C# 泛型。

最佳答案

一个非常简单的例子是通用的 List<T>类(class)。它可以容纳许多任何类型的对象。例如,您可以声明一个字符串列表 (new List<string>()) 或一个动物列表 (new List<Animal>()),因为它是通用的。

如果不能使用泛型怎么办?你可以使用 ArrayList类,但缺点是它包含的类型是 object .因此,当您遍历列表时,您必须将每个项目转换为正确的类型(stringAnimal),这需要更多代码并且会降低性能。另外,由于 ArrayList持有对象,它不是类型安全的。您仍然可以添加 AnimalArrayList字符串:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com