我有一个类(class)的员工。我希望能够在保存之前对其进行Validate(),以确保所有字段均已填充有有效值。
该类的用户可以在调用Save()之前调用Validate(),也可以直接调用Save(),然后Save()随后将调用Validate(),并且如果验证失败,则可能引发Exception。
现在,我的(主要)问题是这个;
如果我的Validate()函数返回一个简单的 bool 值,那我该如何告诉该类的用户出了什么问题,即“电子邮件未填写”,“ID不唯一”等。为此,我只想要错误字符串传递给人类用户,但是如果我想要一个错误代码列表,则原理是相同的(除非这样做会使位图的使用更加合理)。
我的特定程序是C#,但这看起来是一个相当通用的“最佳实践”问题,我相信我应该知道答案。非常感谢收到任何建议。
最佳答案
我可能会选择位图选项。简单地
[Flags]
public enum ValidationError {
None = 0,
SomeError = 1,
OtherError = 2,
ThirdError = 4
}
...以及在调用代码中,只需:
ValidationError errCode = employee.Validate();
if(errCode != ValidationError.None) {
// Do something
}
对我来说似乎不错而紧凑。
关于c# - 从验证功能中回馈额外信息的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1043579/