Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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类原始泛型列表#_C#_Generics - Fatal编程技术网

C# c类原始泛型列表#

C# c类原始泛型列表#,c#,generics,C#,Generics,作为一名java用户,我刚刚开始钻研C。我遇到了一个问题,声明了一个泛型原始类型的列表。考虑类 A >代码> B:A代码> C:A。现在我想声明类似于List的内容。在这种声明中,我面临一个问题,即获取“泛型类型参数需要1个参数”。我有没有办法做那样的事?或者C#中还有一些其他模式可以使用?当使用泛型类型时,必须指定类型参数。在这种情况下,要声明a的列表,必须指定T。例如: List<A<int>> list = new List<A<int>>(

作为一名java用户,我刚刚开始钻研C。我遇到了一个问题,声明了一个泛型原始类型的列表。考虑类<代码> A<代码> >代码> B:A<代码>代码> C:A<代码>。现在我想声明类似于
List
的内容。在这种声明中,我面临一个问题,即获取“泛型类型参数需要1个参数”。我有没有办法做那样的事?或者C#中还有一些其他模式可以使用?

当使用泛型类型时,必须指定类型参数。在这种情况下,要声明
a
列表
,必须指定
T
。例如:

List<A<int>> list = new List<A<int>>();
更新#1

在使用下面的例子之前,我必须承认我没有给出太多 思考一下使用
动态
列表
会有多有用/实用
或者什么问题可能会出现,但我想我会的
提出建议

公共A类
{
公共T值{get;set;}
}  
列表=新列表();
添加(新的{Value=“Hello World”});
添加(新的{Value=100});
foreach(列表中的项目)
{
Console.WriteLine(项值);
}

C#中没有原始泛型类型,必须提供所有类型参数。你会怎么使用这样的类型呢?最好是列出
,然后动态检查类型。更清楚地说出您实际要解决的问题。当我们所知道的只是您试图做类型系统不支持的事情时,就很难对模式给出建议。可能是重复的
List<B> list = new List<B>();
List<C> list = new List<C>();
public class A<T>
{
    public T Value { get; set; }
}  

List<A<dynamic>> list = new List<A<dynamic>>();

list.Add(new A<dynamic> { Value = "Hello World" });
list.Add(new A<dynamic> { Value = 100 });

foreach(A<dynamic> item in list)
{
    Console.WriteLine(item.Value);
}