Unity与Visual Studio中的C# - 调试器跳过行

时间:2017-11-10 20:26:12

标签: c# visual-studio debugging unity3d multidimensional-array

我正在与Visual Studio中的C#一起工作。如果我使用这样的数据结构:

bool[,] arr = new bool[rows, cols];

这很好用。然后我尝试像这样分配给这个数组:

arr[row, col] = true;

问题是当调试器到达此行时,它会立即退出该函数。我尝试将其包装在try/catch块中,并且不会抛出任何异常。代码运行正常,调试器只是拒绝调试通过多维数组的赋值。我尝试使用锯齿状数组,然后调试器将正常运行(它也可以在列表列表中正常工作)。但是有些情况下我被迫使用多维数组。有谁知道发生了什么,以及如何解决这个错误?

编辑:这是一个虚拟的,自包含的类,会导致问题发生:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ArrayTest : MonoBehaviour
{
    private bool[,] arr;
    private int numRows = 8;
    private int numCols = 11;
    bool truthVal = true;

    // Use this for initialization
    void Start () {
       arr = new bool[numRows, numCols];
    }

    // Update is called once per frame
    void Update () {
        AssignArr();
    }

    public void AssignArr()
    {
        for (int i = 0; i < numRows; ++i)
        {
            for (int j = 0; j < numCols; ++j)
            {
                arr[i, j] = truthVal;
            }
        }

        truthVal = !truthVal;
    }
}

所有这一切都是遍历数组并更改其所有真值。在退出之前,调试器将在AssignArr()中运行一次循环。

0 个答案:

没有答案