首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

新手 运行报错“未将对象引用设置到对象的实例”,求大神解,多谢

2013-10-11 
新手运行报错“未将对象引用设置到对象的实例”,求大神解,谢谢using Systemusing System.Collections.Gener

新手 运行报错“未将对象引用设置到对象的实例”,求大神解,谢谢
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报错。

热点排行