gpt4 book ai didi

c# - 为什么此代码适用于不同类型?

转载 作者:太空狗 更新时间:2023-10-29 22:13:48 25 4
gpt4 key购买 nike

我正在研究一些类示例。这段代码有效,但我不明白它为什么有效。我知道有一个通用类型并且该类实现了 Item 但 Item 只是另一个类。为什么此代码允许 int 和 double 进入同一列表。

我确信它与 Generic 有关,但我不确定为什么。

问题:为什么这段代码允许两种不同的类型进入同一个列表?

类定义:

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>());
}

最佳答案

你在这里的困惑源于你有两个泛型类型,而不是一个。第一个是您已经了解的通用列表。第二个是通用的 Item类:

public class Item<T> : Item

这个类的定义表明 Item<T>始终继承 Item , 不管是什么类型 T是。这意味着,当您创建 List<Item> ...

var list = new List<Item>();

...您可以添加任何 Item<T>与任何Item<T>一样是一个 Item .

关于c# - 为什么此代码适用于不同类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23206855/

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