当我们声明(示例)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>();
关于c# - 泛型——需要说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1716132/