次の方法があるとしましょう。中には来た
public IEnumerable<ValidationResult> Validate(UserLoginCommand command)
{
User user = userRepository.Get(u => u.Email == command.UserEmail);
if(user != null)
{
if(!user.Activated)
{
return new IEnumerable<ValidationResult>() {new ValidationResult("NotActived", Resources.UserNotActivated)};
}
if(user.IsPasswordIncorrent)
{
yield return new ValidationResult("IncorrectPassword", Resources.IncorrentPassword);
}
}
}
実際の状況は実際にはもう少し複雑ですが、説明のために多くを省略しました。
重要なのは、複数のエラーを収集し続けるためにイテレータを使用したい場合です...しかし、致命的なエラーがあり、単一のエラーのみを返したいのですが、次のことはできません。
Iterator cannot contain return statement
私は何をすべきか?