使用泛型参数初始化LinkedList

时间:2015-02-22 07:26:56

标签: c# unity3d

我想用具有自己的泛型参数的类初始化LinkedList,但它在Unity 4.6上会出错。示例代码如下:

public class Packet<T>
{
    public Packet(string args, T data)
    {}
}

public class Test
{
    public LinkedList<Packet> packets = new LinkedList<Packet> ();
}

,输出错误如下:

Assets/Test.cs(13,27): error CS0305: Using the generic type `Packet<T>' requires `1' type argument(s)

是否可以使用具有自己的泛型参数的类初始化LinkedList?

更新

我想在初始化LinkedList之后保持Packet泛型。

2 个答案:

答案 0 :(得分:2)

有可能,您只需将通用参数传递给Packet<T>类,因为它期望您的字段声明中当前缺少T对象:

public LinkedList<Packet<string>> packets = new LinkedList<Packet<string>>();

答案 1 :(得分:2)

  

我想在初始化LinkedList之后保持Packet泛型。

不可能。初始化在运行时完成,然后泛型已经解析为特定类型。泛型只在编译时可变。