这是一个基本问题,但似乎让我很困惑。
给定一个“嵌套泛型”:
IEnumerable<KeyValuePair<TKey, TValue>>
这是否说明 IEnumerable 可以具有本身是 KeyValuePair 的泛型类型?
谢谢,
斯科特
最佳答案
是的。 KeyValuePair 类型需要两个泛型类型参数。我们可以通过指向具体类型来填充它们:
IEnumerable<KeyValuePair<string, int>>
或者我们可以使用外部类已经指定的其他通用参数来填充它们:
class Dictionary<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>>
泛型类型参数总是在“使用时”指定,或者在您使用需要它们的类或方法时指定。就像任何其他参数一样,您可以用常量、硬编码值(或本例中的类型)或其他变量填充它。
关于c# - C# 中的嵌套泛型是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3445734/