.Net支持curried泛型吗?假设我们有一个嵌套的泛型类:publicclassA{publicclassB{}}这里,typeof(A.B)本质上是一个带有两个参数的泛型类,其中只有第一个被绑定。如果我有一个带有两个参数的单类publicclassAB{}有没有办法引用“AB保持打开状态,T=int和U”?如果不是,这是C#限制还是CLR限制?显然它不能在C#中完成,你必须指定两个类型参数,或者一个都不指定。而且CLR似乎也不支持它,A.B和A.B指的是同一类型:Typet1=typeof(A).GetNestedType("B`1");输入t2=typeof(A).GetNestedType("B`1");//t1.Equals(t2)为真两种类型的封闭类型都是A(开放泛型类型)编辑:进一步测试表明typeof(A.B)实际上是arity2的泛型类型,而不是arity1...typeof(A.B).GetGenericArguments()的嵌套泛型类型typeof(A.B).GetGenericArguments()返回一个包含typeof(int)和typeof(string)的数组。所以typeof(A.B)实际上等同于不支持的(AB)(泛型不能部分关闭)你是这么想的吗?以上是C#学习教程:Does.Netsupportcurriedgenerics?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——classAB{protectedTt;你你;}C类:AB{publicvoidFoo(){t=5;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
