泛型类型可以接受其他泛型类型吗?

时间:2019-05-24 07:33:19

标签: c# generics types

我希望我的班级接受另一个通用类型。 这是有效的C#代码吗?

public class classname<T<J>>
{

}

2 个答案:

答案 0 :(得分:1)

您正在考虑的是明智的,但是很遗憾,尚不支持 。它被称为更高种类的参数多态性,这是人们迫切期待的功能。 Roslyn issue


PS 。以防万一,您可能需要考虑以下内容,

public class A<T, J> where T : ISomething<J>
{

}

答案 1 :(得分:0)

这不是有效的c#代码,因为T本身不是通用的,而是以某种通用依赖性来回答的。泛型的想法是使类名能够与任何T一起使用。当您通过使用类进行实例化或专门化时,可以提供另一种泛型来代替T。您的第一堂课。

例如,如果有字符串列表,则可以有一个列表。声明列表类时,只有一个。声明变量或参数时,您可以拥有

var a= List<List<String>> ()