Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#泛型中带有类型参数的类型参数_C#_Generics - Fatal编程技术网

C#泛型中带有类型参数的类型参数

C#泛型中带有类型参数的类型参数,c#,generics,C#,Generics,我想在c#中的泛型中使用带有类型参数的类型参数,如下所示: public class ClassB {} public class ClassA<T>: IList<T<ClassB>> {} 公共类B{} 公共类ClassA:IList{} 有可能这样做吗?在尝试了许多事情之后,似乎您还不能,甚至使用了where子句:编译器拒绝所有t和IList 例如: public class ClassA<T1, T2> : IList<T1&l

我想在c#中的泛型中使用带有类型参数的类型参数,如下所示:

public class ClassB {}
public class ClassA<T>: IList<T<ClassB>> {}
公共类B{}
公共类ClassA:IList{}

有可能这样做吗?

在尝试了许多事情之后,似乎您还不能,甚至使用了
where
子句:编译器拒绝所有
t
IList

例如:

public class ClassA<T1, T2> : IList<T1<T2>> // implementation request refused
  where T2 : ClassB
{
}

public class ClassA<T, T1, T2> : IList<T>
  where T : T1<T2> // constraint refused
  where T2 : ClassB
{
}
公共类ClassA:IList//实现请求被拒绝
其中T2:b类
{
}
公共类ClassA:IList
其中T:T1//约束被拒绝
其中T2:b类
{
}
无法将T1类型的参数与类型的参数一起使用


能做这样一件事可能会很有趣。

现在还不清楚你想在这里实现什么。您希望IList是什么?您“真的”想做什么?您无法将类型参数声明为泛型类型定义。似乎我遇到了这个问题,因为我在分析问题时犯了一个错误。谢谢大家,如果你把<>代码> t1>代码>限制为一个实际的泛型类型,那么编译得很好。“在尝试了很多东西之后,看起来你还不能”——当然,你不能,但永远不会,但永远不会,因为C泛型不是C++模板:C可能的泛型参数参数必须被封闭在可能的约束类型的(子)集合上,C++模板参数参数没有这个限制。当然,戴,但是,除非是问题,否则,OP不是,如写的那样,我似乎面临这个问题,因为我在分析问题上犯了错误。谢谢大家