一个对象数组,老是运行到"对象数组中的元素初始化"的时候就卡了,出一个NullReferenceException was Unhandled对话框private MyClass[] myclass;
MyClass[] myclass = new MyClass[2];
myclass [0] = new MyClass();
// 一运行到这里就出对话框,但是编译可以通过
怎么解决?谢谢!~~~~~~~MyClass 类
namespace MyNamespace
{
    class MyClass :Form
    {
        public MyClass()
        {
            MessageBox.Show("MyClass!");
        }
    }
}form类
namespace MyNamespace
{
    public partial class Form1 : Form
    {
        private MyClass[] myclass;
        
        public Form1()
        {
            InitializeComponent();            MyClass[] myclass = new MyClass[2];        }        private void button1_Click(object sender, EventArgs e)
        {
            myclass [0] = new MyClass();
            // 就是这里老出对话框                     
        }

解决方案 »

  1.   

    你的MyClass为什么要继承Form呢?
    要是我的话,我会用List而不是Array来放MyClasses。
      

  2.   

    myclass = new MyClass[2];
      

  3.   

    namespace MyNamespace
    {
        public partial class Form1 : Form
        {
            private MyClass[] myclass;
            
            public Form1()
            {
                InitializeComponent();             //MyClass[] myclass = new MyClass[2];
                myclass = new MyClass[2];        }        private void button1_Click(object sender, EventArgs e)
            {
                myclass [0] = new MyClass();
                // 就是这里老出对话框                     
            }
      

  4.   

    楼主的程序应该是这样的    private MyClass[] myclass; 
        // 不能使用这个:MyClass[] myclass = new MyClass[2];
        myclass = new MyClass[2];
        myclass[0] = new MyClass();
      

  5.   

    myclass[0]=new MyClass();你这一段代码意思就是实例化一个MyClass的类。
    你如果实例化MyClass的话,就会调用它的构造方法,
    而你的那个构造方法里面就写了一个MessageBox.Show("MyClass!");所以就会弹出一个信息框了
      

  6.   


    public Form1()
            {
                InitializeComponent();            MyClass[] myclass = new MyClass[2];        }和全局变量同名的局部变量会屏蔽了全局变量。
      

  7.   

    构造函数申明的是局部变量,初始化为二维数组,全局变量只声明没有初始化,button方法里面调用的是全局变量,所以才会出现这种情况.按四楼的方法改,或者直接在声明全局变量的时候就初始化为二维数组就行了!