当我们声明(示例)List<T>
我能理解声明,但假设我声明
IEnumerable<T<T1, T2>>
我实际上声明了什么?
这是否意味着,IEnumerable<T>
包含两个通用类型? (使用方法是什么?)
我可以有像Person<T<T2<T3<P1,P2>>>>
这样的深层嵌套吗? ?
简单的例子会很有帮助。
如果你有课
public class Pair<T1, T2> { ... }
然后你可以声明一个方法
IEnumerable<Pair<int, string>> GetPairs();
即一种返回可枚举对的方法,其中每对由一个 int 和一个字符串组成。
用法:
foreach (Pair<int, string> pair in GetPairs()) { ... }
你也可以深度嵌套这些:
IEnumerable<Pair<int, Pair<string, string>>> GetPairs();
即一种返回可枚举对的方法,其中每对由一个 int 和一对两个字符串组成。
这也适用于泛型:
IEnumerable<Pair<T1, T2>> GetPairs<T1, T2>();
即返回可枚举对的方法,其中每对由 T1 和 T2 组成。
但是你不能这样做:
IEnumerable<T<T1, T2>> GetGenericPairs<T, T1, T2>();
我是一名优秀的程序员,十分优秀!