服务器错误 - 值不能为空 - C#set;

时间:2014-06-20 01:48:07

标签: c#

我还是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); }

1 个答案:

答案 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); }
    }
}