我对这个相当典型的错误感到有些困惑。我的代码如下。我正在尝试将项目添加到列表中。
编译器说我需要一个非静态字段的对象引用,但我不能使该类静态,因为我没有返回值...?
public class ApplicantData
{
public string Salutation { set; get; }
public string FirstName { set; get; }
public string LastName { set; get; }
}
public class ApplicantList : List<ApplicantData>
{
public void Add(string salutation, string firstName, string lastName)
{
var data = new ApplicantData
{
Salutation = salutation,
FirstName = firstName,
LastName = lastName
};
this.Add(data);
}
}
通过以下方式调用上述内容:
List ApplicantsDetailsData = ApplicantList.Add(salutation, firstname, lastname);
我确定答案必须明显......(!)
答案 0 :(得分:2)
您需要列表的实例才能向其添加内容。现在你只有一个列表的概念。你有零列表。例如:
var list = new ApplicantList();
list.Add("foo", "bar", "blap");
但是,IMO的子类List<T>
通常是一个糟糕/混乱的举动。
答案 1 :(得分:1)
您正试图像静态方法一样使用ApplicantList.Add
。
首先需要创建ApplicantList
类型的对象,并在该对象上调用Add
。你不能直接在课堂上调用它,因为它不是静态的。
答案 2 :(得分:0)
您需要创建ApplicationList
ApplicantList applicantsDetailsData = new ApplicantList();
applicantsDetailsData.Add(salutation, firstname, lastname);
答案 3 :(得分:0)
ApplicationList是类型(继承自List),而不是该类型的实例。您只能在类的实例上调用实例成员(没有static关键字的函数)。
ApplicationList ApplicantsDetailsData = new ApplicationList();
applicationList.Add(salutation, firstname, lastname);