Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# For循环从不满足条件_C#_Wpf_If Statement - Fatal编程技术网

C# For循环从不满足条件

C# For循环从不满足条件,c#,wpf,if-statement,C#,Wpf,If Statement,在当前页面(包含在主窗口内的框架内)中,当我单击按钮时,会发生以下情况: for (int i = 0; i < mw.pizzas.Length + 1; i++) { if (i == 10) { MessageBoxResult result = MessageBox.Show("You can't order more than 10 pizzas"); break; }

在当前页面(包含在主窗口内的框架内)中,当我单击按钮时,会发生以下情况:

    for (int i = 0; i < mw.pizzas.Length + 1; i++)
    {
        if (i == 10)
        {
            MessageBoxResult result = MessageBox.Show("You can't order more than 10 pizzas");
            break;
        }
        if (mw.pizzas[i] == null)
        {
            mw.pizzas[i] = pizza;
            break;
        }
    }
    NavigationService.Content = new AnotherPage();
我在当前页面上对其进行了定义,如下所示:

MainWindow mw = new MainWindow();
该循环通过使用变量“pizza”的内容定义这10个插槽来递增。定义数组的所有索引后,应弹出一条消息。然而,这条信息从未出现。我做错了什么

编辑:这只是一个猜测。这可能与我每次导航到此页面时创建一个新的CurrentPage有关。每次定义其中一个索引时,它都会导航回上一页,然后使用
NavigationService.Content=new CurrentPage()

编辑2:看起来第二个语句有问题
mw.pizzas[0]
为空,然后在其中获取pizza的内容,然后在程序退出页面并再次进入页面后以某种方式返回为空


编辑3:我试图使pizzaIDs数组保持静态,但出现以下错误:无法使用实例引用访问成员“MainWindow.pizzaIDs”;改为使用类型名限定它

循环从0到9(含9),数组指示,当它达到10时,它脱离循环而不执行。

I将+1添加到长度
I
。即使是现在,在我把它改成9之后,它仍然不起作用。啊,错过了。很抱歉。你试过在messagebox行上设置断点吗?messagebox行也在代码的上面。我想是的,我看到了。问题是,你是否真的做到了,但它根本没有显示出来?我曾经在非gui线程上执行过这种情况,我认为问题的出现是因为条件永远无法得到满足。我确实在条件之外测试了这段代码,消息框确实出现了。这是因为您一直在
new
ing new
main窗口
s。每个
main窗口
都有自己的
pizzas副本
。您需要将
pizzas
更改为
static
或只
new
向上一个
MainWindow
。我将其更改为static,但出现以下错误:无法使用实例引用访问成员“MainWindow.pizzas”;用类型名限定它,而不是用异常自解释。使用
main window.pizzas
而不是'mw.pizzas。
MainWindow mw = new MainWindow();