不能从我的class.cs调用方法

时间:2012-10-20 14:35:55

标签: c# visual-studio-2010 button methods

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

hasPassed()如果学生的年份标记> = 40或者,则应返回True 如果标记<40

,则为false

toString()应返回包含摘要的单个字符串 课堂上的学生详情 例如 “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()方法

所以我做错了什么但是看不出它是什么 任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

但请记住,静态成员无法看到非静态成员。在那种情况下,它赢了;因为找不到yearmark而无法编译。