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

构造函数解决方法

2012-05-29 
构造函数using Systemusing System.Collections.Genericusing System.ComponentModelusing System.Data

构造函数
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是我文件的名字。
本人大一,求高手指导。黄色的条状出现在第一个“{”



[解决办法]
当然,属性不能调用属性,否则引起无限递归。

你要明白属性的原理:

set
{
_name=value;
}
相当于
void set__name(string value)
{
set__name(value); // 自身调用自身
}

热点排行