Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在类中创建方法以更新类中保存的列表_C#_List_Class_Methods - Fatal编程技术网

C# 在类中创建方法以更新类中保存的列表

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;

我试图在一个名为“顾问”的类中创建一个列表,其中包含一个由一个顾问实例提供建议的学生列表。我创建了一个student类,在那里没有问题,但是我在运行时的adviser类中出现了错误

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;
        }
    }
}