如何处理List属性

时间:2017-11-15 20:41:35

标签: c#

在调用方法时,列表不会添加任何内容,它会抛出异常。 应该如何做,如果不写这个就可以做到:

public List<string> Mark = new List<string>();

我已经这样做了,这给了一个例外

public class Student
{
    protected List<string> _mark;

    public List<string> Mark
    {
        get { return _mark; }
        set { _mark = value; }
    }

    public void Get()
    {
        Mark.Add("Hello");
    }
}
 static void Main(string[] args)
    {
       Student a = new Student();
        a.Get();
    }

3 个答案:

答案 0 :(得分:2)

这是因为你没有创建列表的实例,所以错误。它应该是

private List<string> _mark = new List<string>();

你的财产应该只返回它,不需要setter

public List<string> Mark
{
    get { return _mark; }
}

答案 1 :(得分:1)

您没有初始化_markMark.Add("Hello")导致Mark的getter返回_mark,并且在该null对象上调用.Add会导致抛出异常。

你应该做例如。

protected List<string> _mark = new List<string>();

答案 2 :(得分:0)

关于“是否可以不写这个”(和new使用),答案是否定的,因为创建一个新对象可能不是你的意图。 请考虑以下(设计)示例中的bob

  List<string> jim = new List<string>();
  List<string> bob;
  //code..
  bob = jim;
  //code...

更现实的情况可能是List<List<string>>,您可以在其中检索List<string>变量。