读书人

新手 运行报错“未将对象引用设置到对

发布时间: 2013-10-11 14:52:39 作者: rapoo

新手 运行报错“未将对象引用设置到对象的实例”,求大神解,谢谢
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace lab_6_1
{


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

class student
{
public String name;
public int numbel;
public double e_num;
public double m_num;
public double c_num;

public student(String name, int numbel, double e_num, double m_num, double c_num)
{
this.name = name;
this.numbel = numbel;
this.e_num = e_num;
this.m_num = m_num;
this.c_num = c_num;
}

public student()
{
// TODO: Complete member initialization
}
public string GetMassage()
{
return string.Format("姓名:{0},学号:{1},英语成绩:{2},数学成绩:{3},计算机成绩{4}.",
this.name, this.numbel, this.e_num, this.m_num, this.c_num);
}

public double average()
{
double avg = (e_num + m_num + c_num) / 3;
return avg;
}
}
student[] stu = new student [3];
int i = 0;

private void button1_Click(object sender, EventArgs e)
{
if (i <= 2)
{
stu[i] = new student(textBox1.Text, Convert.ToInt32(textBox2.Text), Convert.ToDouble(textBox3.Text), Convert.ToDouble(textBox4.Text), Convert.ToDouble(textBox5.Text));
MessageBox.Show(string.Format("第{0}个学生添加成功。", i + 1));
i++;
}
else
{
MessageBox.Show("对不起,已超过数组上限,最多只能添加3个学生对象。");
}
}

private void label6_Click(object sender, EventArgs e)
{

}



private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < 3; i++)
{
label6.Text += string.Format(stu[i].GetMassage() + "\n" + "平时成绩为:" + stu[i].average() + "\n");
// 未将对象引用设置到对象的实例
}
}




}
}
[解决办法]
stu[i]没有初始化。

button1_Click有没有先按3次。
[解决办法]
按照你的代码我试了一下,问题出在你没有先按3次button1,即stu数组并没有实例化,导致循环的时候对象为null报错。

读书人网 >C#

热点推荐