这是this question的扩展,可能甚至可能是其他问题的副本(如果是这样,请原谅我)。我see from MSDN泛型通常与集合泛型vs继承(当没有涉及集合类时)
使用仿制 类最常见的用途是一样 链表,哈希表,栈, 队列,树和集合等在那里 操作,比如添加和无论存储的数据类型是 ,删除 中的项目都是以大致相同的方式执行的 。
我见过的例子也验证了上面的语句。
有人可以在不涉及任何集合的真实场景中有效使用泛型吗?
迂腐,我在想做出不涉及集合
public class Animal<T>
{
public void Speak()
{
Console.WriteLine("I am an Animal and my type is " + typeof(T).ToString());
}
public void Eat()
{
//Eat food
}
}
public class Dog
{
public void WhoAmI()
{
Console.WriteLine(this.GetType().ToString());
}
}
一个例子,“动物型犬”将
Animal<Dog> magic = new Animal<Dog>();
这是完全有可能的有Dog
从Animal
继承(假设非通用版本Animal
)Dog:Animal
因此Dog
是Animal
我想的另一个例子是一个BankAccount
。它可以是BankAccount<Checking>
,BankAccount<Savings>
。这很可能是Checking:BankAccount
和Savings:BankAccount
。
是否有任何最佳实践来确定我们是否应该使用泛型或继承?
使用继承当过你需要扩展一个类。在你的例子中,你有Animal作为一个通用的,也就是说它可以是你分配它的类型。泛型为您的程序提供了一种使用通用界面执行操作的方法。 – Kaili 2010-04-15 04:00:51