如果...... Else ...按钮上的逻辑单击不起作用

时间:2013-04-03 08:28:17

标签: c# wpf logic

我无法理解为什么我的If ... Else逻辑不起作用。

我想要存档的是,当用户单击该按钮时,它将首先检查页面的值是否小于或等于数组的长度然后它增加页面变量并运行DisplayPath方法它将页面变量设置为数组的长度。

当我运行应用程序并单击该按钮时,只要它超过数组的长度,它就会崩溃。

    private string[] filePaths;
    private int page;

    private void Button_Click_3(object sender, RoutedEventArgs e)
    {
        if (page <= filePaths.Length)
        {
            page++;
            DisplayPath(page);
        }
        else
        {
            page = filePaths.Length;
        }
    }

4 个答案:

答案 0 :(得分:3)

filePaths是一个基于零的数组,将其更改为

    private string[] filePaths;
private int page;

private void Button_Click_3(object sender, RoutedEventArgs e)
{
    if (page < filePaths.Length-1)
    {
        DisplayPath(++page);
    }
    else
    {
        page = filePaths.Length;
    }
}

答案 1 :(得分:2)

由于filePaths是基于零的数组;

if (page < filePaths.Length)
{
    DisplayPath(++page);
}
  

数组是零索引的:具有 n 元素的数组从 0 索引到   的 N-1

答案 2 :(得分:1)

您应该测试少于filePaths.Length

  if (page < filePaths.Length)

数组从索引零开始,可以索引为Length - 1

答案 3 :(得分:-1)

应该是page < filePaths.Length -1,因为您要在page 之前添加 DisplayPath() 由于该页面将指向数组filePaths

中的非现有位置