C# 在类中创建方法以更新类中保存的列表
我试图在一个名为“顾问”的类中创建一个列表,其中包含一个由一个顾问实例提供建议的学生列表。我创建了一个student类,在那里没有问题,但是我在运行时的adviser类中出现了错误C# 在类中创建方法以更新类中保存的列表,c#,list,class,methods,C#,List,Class,Methods,我试图在一个名为“顾问”的类中创建一个列表,其中包含一个由一个顾问实例提供建议的学生列表。我创建了一个student类,在那里没有问题,但是我在运行时的adviser类中出现了错误 class Advisers { private string _Fname; private string _Lname; private string _Department; private List<Student> _StudentsAdvised;
class Advisers
{
private string _Fname;
private string _Lname;
private string _Department;
private List<Student> _StudentsAdvised;
//constructor
public Advisers()
{
_Fname = "";
_Lname = "";
_Department = "";
_StudentsAdvised = null;
}
public void AddToList(Student newStudent)
{
_StudentsAdvised.Add(newStudent);
}
public List<Student> StudentsAdvised
{
get { return _StudentsAdvised; }
set { _StudentsAdvised = value; }
}
public string FirstName
{
get { return _Fname; }
set { _Fname = value; }
}
public string LastName
{
get { return _Lname; }
set { _Lname = value; }
}
public string Department
{
get { return _Department; }
set { _Department = value; }
}
}
在Adviser类中出现以下错误消息:
public void AddToList(Student newStudent)
{
_StudentsAdvised.Add(newStudent);
}
我该怎么做呢?我看不到你在任何地方初始化你的
学生名单
您可以在类构造函数中这样做
//constructor
public Advisers()
{
_Fname = "";
_Lname = "";
_Department = "";
_StudentsAdvised = new List<Student>();
}
//构造函数
公共顾问()
{
_Fname=“”;
_Lname=“”;
_部门=”;
_StudentsAdvised=新列表();
}
erm
公共类建议:列表
{
私人只读顾问;
私人顾问()
{
}
公共(IEnumerable adivsees,Advisor)
:基本(建议)
{
this.advisor=advisor;
}
公众(顾问)
{
this.advisor=advisor;
}
公共顾问
{
得到
{
把这个还给我;
}
}
}
他们不会得到建议吗?更改\u StudentsAdvised=null;在构造函数中,指向_StudentsAdvised=new List();列表可以是BindingList…至少…或者从BindingList派生一个类(或泛型类),并具有您需要的正确实现,然后在adviser类中使用从BindingList派生的类来保存信息…同意-您没有在构造函数中更新集合。您只是将其设为null,因此在尝试使用objectMy(noob)时会引发nullReferenceException。对构造函数的理解是它初始化了值。我希望列表开始为空,这就是我将其设置为空的原因。不过这很管用,谢谢!
//constructor
public Advisers()
{
_Fname = "";
_Lname = "";
_Department = "";
_StudentsAdvised = new List<Student>();
}
public class Advisess : List<Student>
{
private readonly Advisor advisor;
private Advisess()
{
}
public (IEnumerable<Student> adivsees, Advisor advisor)
: base(advisees)
{
this.advisor = advisor;
}
public (Advisor advisor)
{
this.advisor = advisor;
}
public Advisor Advisor
{
get
{
return this.advisor;
}
}
}