和定义应该没什么关系,是没有初始化的原因.
MyClass[] test = new MyClass[10];
这样的声明之后需要再对数组对象进一步初始化:
for (int i = 0; i < test.Length; i++)
{
test[i] = new MyClass();
}
string[] str = new string[10];
//str就是一个对象,string就是一个类,这跟你自己定义的类没什么区别
//不过数组刚定义时初始值都是null,即str[0]==null,需要你去构造对象,这里只是放的引用(C++的指针)
str[0] = new string( 'a ');
str[0].ToString();//返回 "a "
str[1].ToString();//抛出NullRefer...异常:空指针
其中定义了数组类,还要具体实例化每一个类,代码如下:
private void Button1_Click(object sender, System.EventArgs e)
{
ClassArray[] ca=new ClassArray [10];
for(int i=0;i <10;i++)
{
ca[i]=new ClassArray ();
}
for(int i=0;i <10;i++)
{
TextBox1.Text +=ca[i].Write ();
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
}
}
public class ClassArray
{
public ClassArray()
{
}
public string Write()
{
return "htes ";
}
}