gpt4 book ai didi

c# - 从迭代器 block 返回单个元素 - 迭代器不能包含返回语句

转载 作者:太空狗 更新时间:2023-10-29 22:10:55 24 4
gpt4 key购买 nike

假设我有以下方法。在一些来了

    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);

}

}
}

实际情况实际上要复杂一些,但为了便于说明,我省略了很多内容。

重点是在某些情况下,我想迭代器继续收集多个错误...但在其他情况下,出现 fatal error ,我只想返回一个错误,但它不会让我:

Iterator cannot contain return statement 

我该怎么办?

最佳答案

如果你只想返回一个大小为 1 的集合,你可以这样做:

if(!user.Activated)
{
yield return new ValidationResult("NotActived", Resources.UserNotActivated);
yield break;
}

关于c# - 从迭代器 block 返回单个元素 - 迭代器不能包含返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13961890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com