为什么我不能在匿名方法中的while循环中使用break?

山姆

为什么在匿名方法中不能break;while循环中使用语句

当我遇到以下错误时,我正在处理下面的代码:“ Control cannot leave the body of an anonymous method or lambda expression”。

幸运的是,我可以return;改用解决问题,但我仍然想知道为什么不能使用break;对我来说,这两个语句之间主要区别在于,它return;退出一个方法,然后break;退出最嵌套的循环。

我的代码,

while (someCondition)
{
    System.Threading.Thread.Sleep(500);

    Application.Current.Dispatcher.Invoke(new Action(() =>
    {
        if (someOtherCondition)
        {
            // Do stuff...
        }
        else
        {
            if (anotherCondition)
            {
                break;
            }

            // Do something else...
        }
    }));
}
大卫·阿尔诺

重写代码有助于解释原因:

while (someCondition)
{
    System.Threading.Thread.Sleep(500);

    Application.Current.Dispatcher.Invoke(MyMethod);
}

private void MyMethod()
{
    if (someOtherCondition)
    {
        // Do stuff...
    }
    else
    {
        if (anotherCondition)
        {
            break;
        }

        // Do something else...
    }
}

您正在破坏一个没有循环的函数。该循环存在于另一种方法中。如您所知,因此需要调用return。仅仅因为您使用的是匿名方法,它仍然是与包含while循环的方法不同的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能在这个 while 循环中使用括号?

来自分类Dev

为什么我不能在Swift中的for循环中使用i ++

来自分类Dev

为什么不能在 for 循环中使用类型提示?

来自分类Java

为什么我不能在匿名类中使用<Class> .this?

来自分类Dev

为什么我不能在列表中使用匿名函数?

来自分类Linux

为什么我不能在Bash For循环中使用Unix Nohup?

来自分类Dev

为什么我们不能在循环中使用 async:true ?

来自分类Dev

为什么Go中不能在循环中使用'var'?

来自分类Dev

在 while 循环中使用 break 会给我错误“break 不能在循环或 switch 之外使用”,即使它已经在循环内

来自分类Dev

为什么我不能在C#中使用整数作为while循环的条件?

来自分类Dev

为什么我们可以在 if 循环中使用分号,而在 while 循环中不能使用分号

来自分类Dev

为什么我们不能在插入排序的while循环中更改语句的顺序?

来自分类Java

为什么我不能在界面中使用默认方法?

来自分类Dev

为什么我不能在Laravel中使用关系方法?

来自分类Dev

为什么我不能在每个循环中合并哈希

来自分类Dev

为什么我不能在 for 循环中打印每个结果?

来自分类Dev

为什么不能在批处理循环中使用问号?

来自分类Dev

为什么在foreach循环中不能在Typescript中使用全局变量?

来自分类Dev

为什么不能在多个foreach循环中使用数组?

来自分类Dev

为什么我不能在 jasmine 的 expectAsync 中使用匿名函数?

来自分类Dev

为什么我不能在C ++中的三元条件语句中使用“ break”语句?

来自分类Dev

为什么我的for循环中的if语句不能在Java脚本中运行

来自分类Dev

为什么不能在使用browserify的循环中要求(...)?

来自分类Dev

为什么我不能在 C# 三元表达式中使用 break?

来自分类Dev

为什么需要在 Java 的 while 循环中使用“break”和“continue”语句?

来自分类Dev

为什么我不能在 Ruby 中使用带有 `for` 循环的花括号?

来自分类Dev

为什么我不能在 Selenium 中使用 for 循环来抓取类元素?

来自分类Dev

为什么我不能在我的代码中使用“ balance ”?

来自分类Dev

为什么“ if”语句不能在while循环中运行,而while循环中也没有其他事件发生?

Related 相关文章

  1. 1

    为什么我不能在这个 while 循环中使用括号?

  2. 2

    为什么我不能在Swift中的for循环中使用i ++

  3. 3

    为什么不能在 for 循环中使用类型提示?

  4. 4

    为什么我不能在匿名类中使用<Class> .this?

  5. 5

    为什么我不能在列表中使用匿名函数?

  6. 6

    为什么我不能在Bash For循环中使用Unix Nohup?

  7. 7

    为什么我们不能在循环中使用 async:true ?

  8. 8

    为什么Go中不能在循环中使用'var'?

  9. 9

    在 while 循环中使用 break 会给我错误“break 不能在循环或 switch 之外使用”,即使它已经在循环内

  10. 10

    为什么我不能在C#中使用整数作为while循环的条件?

  11. 11

    为什么我们可以在 if 循环中使用分号,而在 while 循环中不能使用分号

  12. 12

    为什么我们不能在插入排序的while循环中更改语句的顺序?

  13. 13

    为什么我不能在界面中使用默认方法?

  14. 14

    为什么我不能在Laravel中使用关系方法?

  15. 15

    为什么我不能在每个循环中合并哈希

  16. 16

    为什么我不能在 for 循环中打印每个结果?

  17. 17

    为什么不能在批处理循环中使用问号?

  18. 18

    为什么在foreach循环中不能在Typescript中使用全局变量?

  19. 19

    为什么不能在多个foreach循环中使用数组?

  20. 20

    为什么我不能在 jasmine 的 expectAsync 中使用匿名函数?

  21. 21

    为什么我不能在C ++中的三元条件语句中使用“ break”语句?

  22. 22

    为什么我的for循环中的if语句不能在Java脚本中运行

  23. 23

    为什么不能在使用browserify的循环中要求(...)?

  24. 24

    为什么我不能在 C# 三元表达式中使用 break?

  25. 25

    为什么需要在 Java 的 while 循环中使用“break”和“continue”语句?

  26. 26

    为什么我不能在 Ruby 中使用带有 `for` 循环的花括号?

  27. 27

    为什么我不能在 Selenium 中使用 for 循环来抓取类元素?

  28. 28

    为什么我不能在我的代码中使用“ balance ”?

  29. 29

    为什么“ if”语句不能在while循环中运行,而while循环中也没有其他事件发生?

热门标签

归档