我正在尝试为学校作业写一些(OOP),但我遇到了一些问题

I'm trying to write some (OOP) for a school assignment and I came up with some problems

首先给大家看一下题目


我创建了一个class和属性。 但我不知道剩下的我尽力了。 老师没有给我们set和get方法

这是我的代码:

namespace ProjectOO

{

    class Program

    {
        static void Main(string[] args)

        {
            student a = new student("omar", 55);

            Console.WriteLine(a.Rate());

            student b = new student("ahmed", 91);

            Console.WriteLine(b.Rate());

            student c = new student("mohammed", 22);

            Console.WriteLine(c.Rate());

            Console.ReadKey();
        }
    
    }

    class student
    {
         string name;
         double grade;

        public student()
        {
            name = name;
            grade = grade;
        }

        public void Rate(double grade)
        {
            if (grade >= 60)
            {
                Console.WriteLine("pass");
            }
            else
            {
                Console.WriteLine("fail");
            }
        }
    }
}

您正在使用 student("omar", 55); 但没有它的构造函数。

class student
{
     string name;
     double grade;

    public student(string name,double grade)
    {
        this.name = name;
        this.grade = grade;
    }

    public string Rate()
    {
        if (grade >= 60)
        {
            return "pass";
        }
        else
        {
           return "fail";
        }
    }
}

这是 OOP 的粗略概念。

您的代码有问题:

  1. 您在创建新对象时声明了一个不带参数和传递参数的构造函数。
    (向构造函数添加参数,使用 this 关键字消除命名歧义)
  2. 您正在调用一个方法 ( Rate() ),该方法需要一个没有参数的参数。
    (您不需要通过成绩,因为这是 class 方法并且对象中已经有成绩值。)
  3. 您正在尝试打印一个 return 无效的函数。
    (所以我们正在 returning 一个字符串,所以当我们调用该方法时,该方法将 return 一个要打印的字符串。)

更新: 请查看@CobyC 的回答,他明白了我完全错过的要点

您的作业状态。

The class' method is "Rate", which receives the name and grade of the student and print "pass" if the grade >= 60, else "failed

但是你的实现.Rate不符合要求。

您的评分方法需要如下所示:

 public string Rate(string name, double grade)
{
...assign student name and grade
... Implement the pass fail code
.. return the pass or fail string.
}

不需要采用名称和速率的构造函数。