原始通用类型列表c#

时间:2016-02-23 20:15:54

标签: c# generics

我刚刚开始挖掘C#是一个java用户。我遇到了一个问题,声明了一个通用的原始类型列表。考虑课程A<T>B : A<String>C : A<Int16>。现在我想宣布像List<A> list这样的东西。我在这种声明中面临一个问题,得到一个&#34; 泛型类型参数需要一个参数&#34;。我有什么方法可以做那样的事情吗?或者C#中还有其他一些模式可供使用?

1 个答案:

答案 0 :(得分:2)

使用泛型类型时,必须指定type参数。在这种情况下,要声明List A,您必须指定T。例如:

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

或看作BC都来自A并明确指定T,那么您可以拥有:

List<B> list = new List<B>();
List<C> list = new List<C>();

更新#1

  

在使用以下示例之前,我必须承认我没有给予太多   考虑使用List dynamic会有多么有用/实用   是或者可能出现什么问题,但我想是的   提出建议。

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);
}