我需要在我的学生班中编写2个方法来执行以下操作
hasPassed()如果学生的年份标记> = 40或者,则应返回True 如果标记<40
,则为falsetoString()应返回包含摘要的单个字符串 课堂上的学生详情 例如 “12345 Basil Fawlty,19/08/1946”
这里是我对上述方法的代码,我对它的要求是什么正确的?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CourseWork
{
public class Student
{
private static string firstname;
private string secondname;
private string dateofbirth;
private string course;
private int matricnumber;
private double yearmark;
public bool hasPassed()
{
if (yearmark >= 40)
return true;
else
return false;
}
public void toString()
{
firstname = "Basil";
secondname = "Fawlty";
dateofbirth = "23/08/1946";
course = "MA Hotel Management";
matricnumber = 12345;
yearmark = 55;
}
public Student()
{
}
public string FirstName
{
get { return firstname; }
set { firstname = value; }
}
public string SecondName
{
get { return secondname; }
set { secondname = value; }
}
public string DateOfBirth
{
get { return dateofbirth; }
set { dateofbirth = value; }
}
public string Course
{
get { return course; }
set { course = value; }
}
public int MatricNumber
{
get { return matricnumber; }
set
{
if (value <= 99999 && value >= 10000)
{
matricnumber = value;
}
else
{
Console.WriteLine("Invalid Matric Number: {0}", value);
}
matricnumber = value;
}
}
public double YearMark
{
set
{
if (value <= 100 && value >= 0)
{
yearmark = value;
}
else
{
Console.WriteLine("Invalid Year Mark: {0}", value);
}
yearmark = value;
}
}
}
然后我需要将上述方法用于执行以下操作的获取按钮
获取:使用Student类方法的值更新文本框。该 应使用Student.hasPassed()方法更新通过/失败标签。该 应使用Student.toString()更新学生详细信息摘要。
但是我在编写代码时遇到了麻烦,我无法从我的学生班调用hasPassed()方法或toString()方法
所以我做错了什么但是看不出它是什么 任何想法如何解决这个问题?
答案 0 :(得分:1)
为了使方法可见,您需要创建类Student
的实例。前,
Student _student = new Student();
bool _x = _student.hasPassed();
如果您希望成员无需实例化即可访问,请将该成员设为静态
public static bool hasPassed()
{
if (yearmark >= 40)
return true;
else
return false;
}
但请记住,静态成员无法看到非静态成员。在那种情况下,它赢了;因为找不到yearmark
而无法编译。