【发布时间】:2015-08-11 12:59:52
【问题描述】:
目前我在泛型类型方面有点挣扎。
在阅读它时,我有时会遇到ISomeType<>。
例如:
Type generic = typeof(Dictionary<,>);
https://msdn.microsoft.com/en-us/library/system.type.makegenerictype%28v=vs.110%29.aspx
我真的找不到关于空<> 表示的任何文档。
那么:我应该什么时候使用<> 或<,>?
更新:
正如@dcastro 所说,它被称为开放泛型,更多信息可以在这里找到:Generics -Open and closed constructed Types
更新 2
关于闭包参数,这个问题是关于语法的含义。
【问题讨论】:
-
该示例上方的注释说“但保留将它们分开的逗号,以便编译器可以推断类型参数的数量”。它可能就这么简单 - 它取决于类型参数的数量..
-
空的
<>表示你想引用未指定的类型。这通常与反射一起使用,因此您可以在运行时“填写”TParams。 -
ISomeType<>是一种具有一个泛型参数的开放泛型类型。Dictionary<,>是具有两个泛型参数的开放泛型类型。对于什么是开放泛型类型的描述,我链接的问题有一个响应 -
空尖括号基本上只是表示“在此处插入类型”。例如
List<>可以是List<string>或List<int>。 -
我有点不同意将此问题视为指定问题的副本。虽然这个问题可能由另一个问题的答案隐含地回答,但另一个问题是询问“开放泛型类型”一词的含义,而这个问题是询问语法摘录
<>和 @987654336 的含义@。这就像一方面问override做了什么,又问如何在一个方法中实现多态行为。这两个问题基本上可以同时回答,但是,它们是从不同角度“攻击”一个主题的两个不同问题。
标签: c#