读书人

构造函数解决方法

发布时间: 2012-05-29 12:16:00 作者: rapoo

构造函数
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); // 自身调用自身
}

读书人网 >C#

热点推荐