我还是C#的新手,我一直很好地宣布{get; set;}
,但是根据SO解决方案 HERE 我需要做一个手册{{1现在,在尝试在此页面上执行“过滤依据” HERE 后,我遇到了get
的错误。
由于我没有value cannot be null
,错误会在我的调试器中指向此处。
set
我认为我应该尝试类似public string EmployeeNamesString
{
get { return string.Join(", ", this.employeeNames); } //System.ArgumentNullException
}
的内容,但我不确定将其设置为...
有人可以向我解释为什么会发生这种情况,以及我如何解决这个问题?
谢谢!
视图模型
set { this.employeeNames = (someValue); }
答案 0 :(得分:2)
最初,您的employeeNames
集合将为null
,因此如果集合尚未初始化,则您对string.Join
的调用将抛出ArgumentNullException
。
public IEnumerable<string> employeeNames { get; set; }
public string EmployeeNamesString
{
get { return string.Join(", ", this.employeeNames); }
}
一种可能性是在构造函数中初始化employeeNames
,因此当您访问EmployeeNamesString
时它不为空。您可能还希望将setter设为私有,因此类外的任何内容都不能使employeeNames
为空。
public class StarringViewModel
{
public StarringViewModel
{
employeeNames = new List<string>();
}
...
...
public IEnumerable<string> employeeNames { get; private set; }
public string EmployeeNamesString
{
get { return string.Join(", ", employeeNames); }
}
}