我查看了一些使用 C# 泛型的示例代码。为什么以及何时应该使用它们?
所有的例子都很复杂。我需要一个简单、清晰的示例来帮助我开始使用 C# 泛型。
一个非常简单的例子是通用的List<T>
班级。它可以容纳许多任何类型的对象。例如,您可以声明一个字符串列表(new List<string>()
)或动物列表(new List<Animal>()
),因为它是通用的。
如果不能使用泛型怎么办?你可以使用ArrayList
类,但缺点是它包含的类型是object
。因此,当您迭代列表时,您必须将每个项目转换为其正确的类型(要么string
or Animal
)这是更多的代码并且有性能损失。另外,自从ArrayList
保存对象,它不是类型安全的。您仍然可以添加Animal
to an 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)