C#中的嵌套泛型是什么意思?

Sco*_*ies 5 c# generics nested-generics

这是一个基本问题,但似乎让我感到困惑.

鉴于"嵌套通用":

IEnumerable<KeyValuePair<TKey, TValue>>
Run Code Online (Sandbox Code Playgroud)

这说明IEnumerable可以拥有本身就是KeyValuePair的泛型类型吗?

谢谢,

斯科特

Rex*_*x M 6

是.KeyValuePair类型需要两个泛型类型参数.我们可以通过指向具体类型来填充它们:

IEnumerable<KeyValuePair<string, int>>
Run Code Online (Sandbox Code Playgroud)

或者我们可以使用外部类已经指定的其他通用参数来填充它们:

class Dictionary<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>>
Run Code Online (Sandbox Code Playgroud)

通用类型参数始终指定为"使用中",或者在您使用需要它们的类或方法时指定.就像任何其他参数一样,您可以使用常量的硬编码值(或本例中的类型)或其他变量填充它.