构造函数

ADII886614639 2012-05-21 06:16:25
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是我文件的名字。
本人大一,求高手指导。黄色的条状出现在第一个“{”
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ADII886614639 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
改成这样,有你那样写的嘛。。。

C# code


//属性
public string _name
{
get
{
return name;
}
set
{
……
[/Quote]

还有个问题
就是这个喜欢的科目

怎么出现的是a,1,1,11.....
是不是我这里写错了
public void show(string yuwen)
{
MessageBox.Show(name+","+sex+","+age+","+"喜欢的科目"+yuwen);
}
theillusion 2012-05-21
  • 打赏
  • 举报
回复
真够乱的,
public string _name
{
get
{
return _name;
}
set
{
_name = name;
}
}

改成:


public string Name { get; set; }
threenewbee 2012-05-21
  • 打赏
  • 举报
回复
当然,属性不能调用属性,否则引起无限递归。

你要明白属性的原理:

set
{
_name=value;
}
相当于
void set__name(string value)
{
set__name(value); // 自身调用自身
}
人生无悔 2012-05-21
  • 打赏
  • 举报
回复
改成这样,有你那样写的嘛。。。

//属性
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; }
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧