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

标签 c# generics nested-generics

这是一个基本问题,但似乎让我很困惑。

给定一个“嵌套泛型”:

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/

相关文章:

c# - 在 IIS 预热步骤中预加载 ASP.NET MVC View

c# - 初始化 ninject 时“序列不包含任何元素”异常

c# - 实现 Parse Unity 插件的应用程序在 Android 设备上崩溃但在编辑器中运行良好

Delphi:引用参数的通用类型推断

Python 键入 : how to get Type[C] to work with TypeVars and Generics?

c# - 安装 Facebook 5.0.9.0 时未声明架构版本

generics - 为什么这个协议(protocol)可以 "only be used as a generic constraint"?

java - 在外部类外部使用类型化内部类时了解 "improperly formed type, type arguments given on a raw type"

java - 获取泛型类型的泛型参数

java : "uses unchecked or unsafe operations. Recompile with..."