如何在C#中将项添加到通用列表

时间:2014-11-02 16:53:27

标签: c# generics

当我尝试将项目添加到通用列表时,我无法添加,我上面提供的代码已经提供,可以在此提出任何建议。

   Vehicle v2 = new Vehicle(2, false, "car", 50);
   Vehicle v3 = new Vehicle(3, false, "suv", 100);
   Vehicle v4 = new Vehicle(4, false, "suv", 100);

    public List<T> Initialize<T>() where T : Vehicle, new()
    {
        List <T> veh_list= new List<T>();

        //veh_list.Add(new T(1, false, "car", 50));

        veh_list.Add(v2);

        veh_list.Add(v3);
        veh_list.Add(v4);

        return veh_list;
   }

错误:无法从车辆转换为T.

1 个答案:

答案 0 :(得分:3)

您的方法首先不应该是通用的 使方法通用会让调用者写Initialize<Truck>(),而List<Truck>不能包含Vehicle

您应该创建一个返回List<Vehicle>的普通非泛型方法。