将2d数组传递给函数时,Mono Develop调试器崩溃

时间:2013-01-03 00:13:27

标签: c# multidimensional-array mono monodevelop

我在使用mono develop调试单声道应用程序时遇到问题。当我试图在一个将2d数组作为参数的函数内部调试代码时,调试器崩溃了。 例如,测试函数内部的调试器步骤:

float[,] b = new float[4,4];
Test(b);

static void Test(float[,] x)
{
    float[,] y = x;
}

我收到断言错误:

  

回调中的异常:System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> System.IndexOutOfRangeException:Index超出了数组的范围。

我的代码是否有问题,或者单声道/单声道开发有问题吗?

编辑:是的,这段代码只是一个例子;我试图缩小问题范围。

1 个答案:

答案 0 :(得分:0)

这段代码没有问题,它可以很好地编译和运行Mono调试器 (我在OS X上使用MonoDevelop 3.1.1。)

这是我编译的C#程序:

using System;

class MainClass
{
    public static void Main (string[] args)
    {
        float[,] b = new float[4,4];
        Test(b);
        Console.WriteLine ("Hello World!");
    }

    static void Test(float[,] x)
    {
        float[,] y = x;
    }
}

此外,TargetInvocationException表示发生了错误from a method invoked through reflection - 也许这就是您错过实际问题的原因?堆栈跟踪应该为您提供一个提示,查找实际异常的位置。  它甚至可能在不同的主题中。