在调用方法时,列表不会添加任何内容,它会抛出异常。 应该如何做,如果不写这个就可以做到:
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();
}
答案 0 :(得分:2)
这是因为你没有创建列表的实例,所以错误。它应该是
private List<string> _mark = new List<string>();
你的财产应该只返回它,不需要setter
public List<string> Mark
{
get { return _mark; }
}
答案 1 :(得分:1)
您没有初始化_mark
。 Mark.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>
变量。