0

我需要在我的学生班中编写 2 个方法来执行以下操作

hasPassed() 如果学生的年分 >= 40 则返回 True,如果分数 <40 则返回 false

toString() 应该返回一个字符串,其中包含班级内保存的学生详细信息的摘要,例如“12345 Basil Fawlty, 23/08/1946”</p>

这是我对上述方法的代码,我对上面的要求是否正确?

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;
            }

        }
    }

然后我需要在执行以下操作的获取按钮中使用上述方法

Get:使用 Student 类方法的值来更新文本框。Student.hasPassed() 方法应该用于更新通过/失败标签。应使用 Student.toString () 更新学生详细信息摘要。

但我在编码时遇到了问题,我无法从我的学生班调用 hasPassed() 方法或 toString() 方法

所以我做错了什么,但看不出有什么想法可以解决这个问题?

4

1 回答 1

2

为了使这些方法可见,您需要创建一个类的实例Student。前任,

Student _student = new Student();
bool _x = _student.hasPassed();

如果您希望成员无需实例化即可访问,请将成员设为静态,

  public static bool hasPassed()
  {
        if (yearmark >= 40)
            return true;
        else
            return false;
  }

但请记住,静态成员看不到非静态成员。在这种情况下,它不会编译,因为yearmark找不到。

于 2012-10-20T14:39:33.927 回答