【发布时间】:2014-04-23 03:20:49
【问题描述】:
我正在研究一些教室示例。此代码有效,但我不明白它为什么有效。我知道有一个泛型类型并且该类实现了 Item 但 Item 只是另一个类。为什么这段代码允许 int 和 double 进入同一个列表。
我确定它与通用有关,但为什么我不确定。
问题:为什么这段代码允许两种不同的类型进入同一个列表?
类定义:
public class Item<T> : Item
{
}
public class Item
{
}
代码:
static void Main(string[] args)
{
var list = new List<Item>();
list.Add(new Item<int>());
list.Add(new Item<double>());
}
【问题讨论】:
-
提示:
T是一个类型参数。想想这两个词是什么意思。 -
代码太多了。尽量使问题代码简短而切题。
-
Item
、Item 和 Item 都是 Item 的继承。由于您将 Item 存储在集合中,因此它们都可以存储。 -
我已将您的代码剥离回相关部分。