我在写个程序时,遇到这样的问题,现把它简化出来..代码如下:private class B        //如果是 private struct B  就可以...为什么????
        {
            private int a;
            public int A
            {
                get
                {
                    return a;
                }
                set
                {
                    a = value;
                }
            }        } private void Form1_Load(object sender, EventArgs e)
        {
           
            B[,] b = new B[4, 4];  
            b[0, 0].A = 2;      
           
           
        }运行时,提示错误为: "未将对象引用设置到对象的实例.",如果改为 private struct B 就没有问题,为什么会出现这样的错误啊..谢谢!!~~~

解决方案 »

  1.   

    你只new了数组,而没有new类的实例  B[,]   b   =   new   B[4,   4];     
    这里你new了数组
    但是数组的元素  b[0,   0]只是B对象的实例的引用,它并没有被实例化 
    b[0,   0]=new B();应该就可以了
      

  2.   

    对象数组当然是对象的下面代码参考一下:
    public class MyClass
    { private class B
        { 
           private   int   a; 
           public   int   A 
           { 
               get {return   a; } 
               set {a   =   value; } 
           }     } 
    public static void Main()
    {
    B[,] b =new B[4,   4];     
            b[0,0] =new B(); 
    b[0,0].A=1;
    Console.WriteLine(""+b[0,0].A);
    Console.Read();
    }

    }
      

  3.   

    只能是实数型的才可以B[,];Class is not a Value Type.