访问元素数组

时间:2014-03-28 19:06:32

标签: c#

好的,我已经制定了另一个程序来更清楚地解决我的问题。我有一个包含int数组的对象数组,我试图从元素神经元1打印索引[0]。但是,我在第'' Console.WriteLine(ex.neuron [0])'行中获得了一个空引用异常。 我的代码如下。

 namespace ConsoleApplication5
  {
class Program
{

    static void Main()

    {
        ex ex = new ex();

        int[]neuron1 = new int[5];
        int[]neuron2 = new int[5];
        int[]neuron3 = new int[5];
        int[]neuron4 = new int[5];
        int[]neuron5 = new int[5];



        object[,] array1 = new object[2,2];
        array1[0, 0] = ex.neuron1;
        neuron1[0] = 1;

        array1[0, 1] = neuron2;
        neuron2[1] = 1;

        test(array1);

    }

    static void test(object[,] array1)
    {
           ex ex = new ex();
           Console.WriteLine(ex.neuron1[0]);
           Console.ReadLine();
    }
}

}

我有一个课程在这里设置和设置neuron1:

    static void test(object[,] array1)
    {
           ex ex = new ex();
           Console.WriteLine(ex.neuron1[0]);
           Console.ReadLine();
    }
}

}

我认为异常发生是因为我在定义为包含值1之前访问ex.neuron [0]。所以我的问题是如何在设置为保持值1之后访问ex.neuron [0]。感谢。

2 个答案:

答案 0 :(得分:1)

你永远不会设置ex.neuron1,替换这些行

int[] neuron1 = new int[5];

ex.neuron1 = new int[5];

答案 1 :(得分:1)

您可能需要在每个函数中创建ex的新实例,而您可能只需要传递它。此外,您从未在实例本身上设置neuron字段。以下是代码的简化版本:

static void Main()
{
    // define it here
    ex ex = new ex();

    // initialize the neuron fields (although you should probably do this
    // in the constructor for ex
    ex.neuron1 = new int[5];
    ex.neuron2 = new int[5];
    ex.neuron3 = new int[5];
    ex.neuron4 = new int[5];
    ex.neuron5 = new int[5];

    // set some neuron array values
    ex.neuron1[0] = 1;
    ex.neuron2[1] = 1;

    // pass the instance along to test
    test(ex);
}

static void test(ex ex)
{
    // access the array value here
    Console.WriteLine(ex.neuron1[0]);
    Console.ReadLine();
}