public class TempData
{
   public float[ , , ] bytDataRecv = null; }private void Form1_Load(object sender, EventArgs e)
{
   TempData[] tmp1 = new TempData[512];
   tmp1[1].bytDataRecv[1, 1, 1] = 55;
}运行到tmp1[1].bytDataRecv[1, 1, 1] = 55报错,
不知道如何初始化,TempData是否需要构造函数,如果有构造函数,主程序如何new。classobject

解决方案 »

  1.   

     bytDataRecv 没有初始化,你只是创建了 类的实例,但是类里面的数组没有初始化
    循环tmp1数组,为每个tmp1元素的  bytDataRecv 初始化
      

  2.   

    public class TempData
    {
       public float[ , , ] bytDataRecv = null; }private void Form1_Load(object sender, EventArgs e)
    {
       TempData[] tmp1 = new TempData[512];
       tmp1[1]=new TempData();
       tmp1[1].bytDataRecv[1, 1, 1] = 55;
    }
      

  3.   

     tmp1[1].bytDataRecv=new int[10,10,10];
      

  4.   

    public class TempData
    {
       public float[ , , ] bytDataRecv = null; }private void Form1_Load(object sender, EventArgs e)
    {
       TempData[] tmp1 = new TempData[512];
       tmp1[1]=new TempData();
       tmp1[1].bytDataRecv=new float[10,10,10];

       tmp1[1].bytDataRecv[1, 1, 1] = 55;
    }