class Student
{
public Student(string name, int age)
{
Name = name;
Age = age;
}
public string Name;
public int Age;
}
static void Main(string[] args)
{
//这里定义了一个数组,但是通过监视窗口,可以看到初始化数组后,students数组
//中的三个对象元素初始值都是null,这是为什么呢?如果数组元素是引用类型,初
//始化后的元素值是null;如果是值类型,则创建数组后的元素初始值是其类型的默
//认值,是这样吗?这是为什么呢?究竟创建数组的时候,系统是如何处理的,内存
//是如何分配的?创建值类型和引用类型元素的数组有什么区别?
Student students = new Student[3];
students[0] = new Student("Scofield", Genders.Male, 28, "越狱狱");
students[1] = new Student("张靓靓", Genders.Female, 20, "唱歌歌");
students[2] = new Student("周杰杰", Genders.Male, 21, "耍双节棍棍");
}
// 始化后的元素值是null;如果是值类型,则创建数组后的元素初始值是其类型的默
// 认值,是这样吗?yes
http://msdn.microsoft.com/zh-cn/library/0a7fscd0.aspx最后那一部分:值类型数组和引用类型数组请看下列数组声明:SomeType[] array4 = new SomeType[10];该语句的结果取决于 SomeType 是值类型还是引用类型。如果是值类型,则该语句将创建一个由 10 个 SomeType 类型的实例组成的数组。如果 SomeType 是引用类型,则该语句将创建一个由 10 个元素组成的数组,其中每个元素都初始化为空引用。
Student students = new Student[3];应该改为:
Student[] students = new Student[3];