我创建了一个会遇到错误的对象以及一个布尔字段来指示是否存在任何错误。这堂课看起来像这样。
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
。
答案 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