我希望instanciate在C#unity3D中使用Generic类型

时间:2018-02-24 16:52:40

标签: c# unity3d instance generic-programming generic-list

您好我试图调整通用选项卡的大小,但我的问题是初始化新元素

    List<T> Resize<T>(List<T> list, int sz)
{
    if (list.Count < sz)
    {
        while (list.Count < sz)
        {
            T someInstance = new T(); // this line is the probleme
            list.Add(someInstance);
        }
    } else if ((list.Count > sz))
    {
        list.RemoveRange(sz, list.Count);
    }
    return list;
}

谢谢你&lt; 3

1 个答案:

答案 0 :(得分:1)

您需要对new()

的定义使用通用约束T
List<T> Resize<T>(List<T> list, int sz) where T: new()

当然这假设每个类型都有无参数构造函数。     ...