【发布时间】:2015-05-18 20:50:12
【问题描述】:
假设我有一个List<T> ListOfParts = new List<T>;在类公共类汽车内。我想在ListOfParts 列表中添加一个新的“零件”对象。我收到以下错误(见下文)。我做错了什么?
public class Car
{
public List<T> ListOfParts = new List<T>();
:
:
}
// Main ...
Car<Part> myCar = new Car<Part>();
Part myPart = new Part();
myCar.ListOfParts.Add(myPart); // <<< Error here
错误 CS1502:System.Collections.Generic.List.Add(T) 的最佳重载方法匹配有一些无效参数 (CS1502)
【问题讨论】:
-
你为什么有
Car<T>?Car的声明中T的作用是什么?您似乎误解了如何使用泛型 -Car<Part>对我来说根本没有意义。拥有Car并不意味着任何特定的Part-Car-s 由Part-s 组成,但Car-s 不是Part-s 的种类。 -
不,你不是... ideone.com/tJN19G 我看到的唯一问题是你使用的是
mrCar.ListOfParts而不是myCar -
你拼错了
mrCar。否则它应该编译。也许你没有向我们展示的东西。class Part? -
我不需要
作为类 car 定义的一部分,所以 ListOfParts 使用 有效吗?否则编译器会说它不知道 T 是什么 -
请贴出真实代码。在
class Car之后添加<T>是让您的代码正常工作所需的全部内容(我假设是错字)。 dotnetfiddle.net/4pvLd6 - 你说的地方没有错误。