C#中用数组实例化一个类,如何给数组每个成员的字段进行赋值

class student
{
public int chinese; //student类有三个字段
public int math;
public int english;
}
class Program
{
static void Main(string[] args)
{
student[] a= new student[10];
a[0].chinese = 1;
}
如上所示,意图给a[0]的字段进行赋值,结果运行时报错"未将对象引用设置到对象的实例。"请高手们看看哪错了,或者有什么办法实现该功能。

ArrayList是一种动态数组,其容量可随着我们的需要自动进行扩充.
ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间.
在Student类的基础上利用ArrayList操作,从而了解ArrayList的用法

public class Student
{
public Student(){}

public Student(String name,int age,String hobby)
{
this.Name = name;
this.Age = age;
this.Hobby = hobby;
}

private String name;
public String Name
{
get{return name;}
set{name = value;}
}

private int age;
public int Age
{
get{return age;}
set{age = value;}
}

private String hobby;
public String Hobby
{
get{return hobby;}
set{hobby = value;}
}

public void say()
{
Console.WriteLine("大家好,我是'{0}',今年{1}岁,我喜欢'{2}'",
this.Name,this.Age,this.Hobby);
}
}
编写测试类,了解ArrayList的方法

using System.Collections;

public class TestStudent
{
public static void main(String args [])
{
//建立ArrayList对象
ArrayList students = new ArrayList();

//实例化几个Student类对象
Student rose = new Student("rose",25,"reading");
Student jack = new Student("jack",28,"singing");
Student mimi = new Student("mimi",26,"dancing");

//利用ArrayList类的add()方法添加元素
students.add(rose);
students.add(jack);
students.add(mimi);

//利用ArrayList的Count属性查看该集合中的元素数量
int number = students.Count;
Console.WriteLine("共有元素" + number + "个");

//读取单个元素,因为存入ArrayList中的元素会变为Object类型,
//所以,在读取时间,
Student stu = students[0] as Student;
stu.say();

//遍历元素 -- 通过索引
for(int i = 0;i < students.Count;i ++)
{
Student a = students[i] as Student;
a.say();
}
//利用foreach循环
foreach(Object o in students)
{
Student b = o as Student;
b.say();
}

//删除元素 通过索引删除
students.removeAt(0);
//删除元素, 通过对象名
students.remove(jack);
//清空元素
students.Clear();

//我们知道,ArrayList的容量会随着我们的需要自动按照一定规律
//进行填充,当我们确定不再添加元素时,我们要释放多余的空间
//这就用到了Capacity属性和TrimtoSize()方法
//利用Capacity属性可以查看当前集合的容量
//利用TrimtoSize()方法可以释放多余的空间

//查看当前容量
int number = students.Capacity;
//去除多余的容量
students.TrimtoSize();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-26
class Program
{
   static void Main(string[] args)
   {
       //定义了10个元素的数组,每个元素都是null(空引用)
       student[] a= new student[10]; 
       //实例化一个Student将这个实例的引用赋值给数组第一个元素
       a[0] = new Student();
       a[0].chinese = 1;
       ……
       a[1] = new Student;
       a[1].math = 59;
       ……
   }

本回答被网友采纳
相似回答