一个对象数组,老是运行到"对象数组中的元素初始化"的时候就卡了,出一个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();
// 就是这里老出对话框
}
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();
// 就是这里老出对话框
}
要是我的话,我会用List而不是Array来放MyClasses。
{
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();
// 就是这里老出对话框
}
// 不能使用这个:MyClass[] myclass = new MyClass[2];
myclass = new MyClass[2];
myclass[0] = new MyClass();
你如果实例化MyClass的话,就会调用它的构造方法,
而你的那个构造方法里面就写了一个MessageBox.Show("MyClass!");所以就会弹出一个信息框了
public Form1()
{
InitializeComponent(); MyClass[] myclass = new MyClass[2]; }和全局变量同名的局部变量会屏蔽了全局变量。