using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace teacher
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            student a1 = new student();
            a1._name = textBox1.Text;
            a1._sex = textBox2.Text;
            a1._age = textBox3.Text;
            a1.show("a");
        }        private void button2_Click(object sender, EventArgs e)
        {
            student a1 = new student();
            a1._name = textBox1.Text;
            a1._sex = textBox2.Text;
            a1._age = textBox3.Text;
            a1.show(1);
        }        private void button4_Click(object sender, EventArgs e)
        {
            student a1 = new student();
            a1._name = textBox1.Text;
            a1._sex = textBox2.Text;
            a1._age = textBox3.Text;
            a1.show('a');
        }        private void button3_Click(object sender, EventArgs e)
        {
            student a1 = new student();
            a1._name = textBox1.Text;
            a1._sex = textBox2.Text;
            a1._age = textBox3.Text;
            a1.show(1.11);
        }    }
    public class student
    {
        #region zhiduan
        //一对#region,#endregion可以管理一组代码
        //字段成员
        private string name;
        private string sex;
        private int age;
        #endregion
        #region shuxing
        //属性
        public string _name
        {
            get
            {
                return _name;
            }
            set
            {
                _name = name;
            }
         }
        public string _sex
        {
            get { return _sex; }
            set { _sex = value;}
        }
        public string _age
        {
            get { return _age;}
            set { _age = value;}
        }
        #endregion
        #region fangfa
        //方法
        public void show(string yuwen)
        {
            MessageBox.Show(name+","+sex+","+age+","+"喜欢的科目"+yuwen);
        }
        public void show(int shuxue)
        {
            MessageBox.Show(name + "," + sex + "," + age + "," + "喜欢的科目" + shuxue);
        }
        public void show(char yinyu)
        {
            MessageBox.Show(name + "," + sex + "," + age + "," + "喜欢的科目" + yinyu);
        }
        public void show(double huaxue)
        {
            MessageBox.Show(name + "," + sex + "," + age + "," + "喜欢的科目" + huaxue);
        }
        #endregion
    }
}问题是:
set
{
    _name=value;
}
未处理的“stytem.stackoverflowexception”类型的异常出现在teacher.exe中。teacher是我文件的名字。
本人大一,求高手指导。黄色的条状出现在第一个“{”

解决方案 »

  1.   

    改成这样,有你那样写的嘛      //属性
            public string _name
            {
                get
                {
                    return name;
                }
                set
                {
                    name = value;
                }
            }
            public string _sex
            {
                get { return sex; }
                set { sex = value; }
            }
            public string _age
            {
                get { return age; }
                set { age = value; }
            }
      

  2.   

    当然,属性不能调用属性,否则引起无限递归。你要明白属性的原理:set
    {
      _name=value;
    }
    相当于
    void set__name(string value)
    {
        set__name(value); // 自身调用自身
    }
      

  3.   

    真够乱的,
      public string _name
      {
      get
      {
      return _name;
      }
      set
      {
      _name = name;
      }
      }改成:
      public string Name { get; set; }
      

  4.   


    还有个问题
    就是这个喜欢的科目怎么出现的是a,1,1,11.....
    是不是我这里写错了 
    public void show(string yuwen)
      {
      MessageBox.Show(name+","+sex+","+age+","+"喜欢的科目"+yuwen);
      }