For循环从不满足条件

时间:2018-03-18 22:49:19

标签: c# wpf if-statement

在当前页面(包含在MainWindow内的一个框架内)中,当我点击一个按钮时会发生这种情况:

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

mw.pizzas字符串数组包含10个(我认为未定义)变量。我在MainWindow中定义了它:

public string[] pizzas = new string[10];

我已经在当前页面上定义了它,如下所示:

MainWindow mw = new MainWindow();

此循环通过使用变量&#34; pizza&#34;的内容定义这10个插槽来递增。定义数组的所有索引后,将弹出一条消息。但是,此消息从未显示出来。我在这里做错了什么?

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

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

编辑3:我尝试将pizzaIDs数组设为静态,但是我收到以下错误:Member&#39; MainWindow.pizzaIDs&#39;无法使用实例引用访问;使用类型名称来限定它

1 个答案:

答案 0 :(得分:0)

你循环从0到9(包括0和9),数组指示,当它达到10时,它会跳出循环并且不会执行。