实例化类的实例时,Collection字段为null

时间:2017-02-03 20:59:58

标签: c# list collections

我创建了一个会遇到错误的对象以及一个布尔字段来指示是否存在任何错误。这堂课看起来像这样。

public class ValidationResult
{
    public bool IsValid{ get; set; }
    public List<string> Errors { get; set; }
}

我将在验证方法中使用此类的实例

public class ValidationService
{
    // This instance will hold the errors if there are any
    ValidationResult myValidationResult = new ValidationResult();

    public void ValidationMethod()
    {
       // Validation takes place here
       ...
       // Some errors occurred to lets add then to the instance of the ValidationResult object
       myValidationResult.IsValid = false;
       myValidationResult.Errors.Add("An error occurred here are the details");
    }
}

问题是实例myValidationResult中的Errors集合是否为空?为什么是这样?我创建了一个类的实例,并且布尔属性IsValid可用,但Errors集合是null

2 个答案:

答案 0 :(得分:3)

您必须初始化您的错误属性:

public class ValidationResult
{
     public ValidationResult()
     {
          Errors = new List<string>();
     }

    public bool IsValid{ get { return (Errors.Count() == 0); } }
    public List<string> Errors { get; set; }
}

答案 1 :(得分:2)

默认情况下仅初始化值类型。您的List<string>是引用类型,它的默认值为null。

在这里查看更多信息:

https://msdn.microsoft.com/en-us/library/aa691171(v=vs.71).aspx