【发布时间】:2013-12-10 11:15:51
【问题描述】:
我有两节课。一个叫做人另一个学生。学生从人继承。 在我填写表格并将数据传递到下一个表格进行显示之前,一切正常。
除了姓名、地址和州外,一切都正常显示。这些来自 person 类并且具有 NULL 值。让我发疯的是,城市、邮政编码和出生日期来自同一个人班级并且工作得很好。我不明白为什么会发生这种情况,希望有更多知识的人可以为我指明正确的方向。
这里有 2 个类:
public class Person
{
private string name;
private string address;
private string city;
private string state;
private string zipcode;
private DateTime birthdate;
public Person()
{
}
public Person(string name, string address, string city, string state, string zipcode, DateTime birthdate)
{
this.name = name;
this.address = address;
this.city = city;
this.state = state;
this.zipcode = zipcode;
this.birthdate = birthdate;
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Address
{
get { return address; }
set { name = address; }
}
public string City
{
get { return city; }
set { city = value; }
}
public string State
{
get { return state; }
set { state = value; }
}
public string Zipcode
{
get { return zipcode; }
set { zipcode = value; }
}
public DateTime Birthdate
{
get { return birthdate; }
set { birthdate = value; }
}
}
public class Student : Person
{
private string studentID;
private double gradepointAverage;
private List<string> currentClasses = new List<string>();
public Student()
{
}
public Student(string name, string address, string city, string state, string zipcode, DateTime birthdate, string studentID, double gradepointAverage, List<string> currentClasses)
: base(name, address, city, state, zipcode, birthdate)
{
this.studentID = studentID;
this.gradepointAverage = gradepointAverage;
this.currentClasses = currentClasses;
}
public string StudentID
{
get { return studentID; }
set { studentID = value; }
}
public double GradePointAverage
{
get { return gradepointAverage; }
set { gradepointAverage = value; }
}
public List<string> CurrentClasses
{
get { return currentClasses; }
set { currentClasses = value; }
}
}
这里是我实例化类的地方:
private void btnSave_Click(object sender, EventArgs e)
{
s = new Student();
s.StudentID = txtStudentID.Text;
s.Name = txtName.Text;
s.Address = txtAddress.Text;
s.City = txtCity.Text;
s.State = txtState.Text;
s.Zipcode = txtZipCode.Text;
s.Birthdate = DateTime.Parse(txtBirthdate.Text);
s.GradePointAverage = Convert.ToDouble(txtGradPoint.Text);
string stringItmem;
foreach(Object selectedItem in lstClasses.SelectedItems)
{
stringItmem = selectedItem as String;
s.CurrentClasses.Add(stringItmem);
}
students.Add(s);
resetForm();
MessageBox.Show("Student has been saved.");
}
【问题讨论】:
-
您使用哪个构造函数来实例化您的
Student?您是否使用带有所有参数的那个并将所有参数传递给基类?您是否尝试设置断点并调试应用程序? -
我正在实例化 Student ,然后单独设置它们。我使用了调试器,它在所有提到的字段中都显示为 null。我设置打破我将 Student s 传递到学生列表中的位置,并且那里对他们来说已经是空的。
-
那么,您的问题是您的学生的值没有从您的输入中正确设置(即值不应该是“空”),还是空值在下一个表格?抱歉,从您的问题中不清楚您的问题到底是什么。
-
我的输入没有从表单中正确设置。即使输入了数据,名称、地址和状态也会显示为空。来自同一父类的城市、邮政编码和出生日期可以正常工作并显示在显示表单中。这就是为什么我很困惑。他们不应该都有同样的问题吗?
标签: c# winforms inheritance