0

Unitオブジェクトへのプライベート参照を追加する必要があります_Unit。添付されているのは両方のクラス(UnitResult)です。

以下のコードが必要であることを理解していますが、エラーが発生します(以下にリストされています)。

// 14. create new class
class Result : Unit

base()以下は、 2つのコンストラクターを必要とするエラーを作成します。

// 17. Create constructor for the class
public Result(string grade, Unit _Unit) : base(_Unit)

私のユニットクラスには、2つのプライベート文字列_Codeとがあり_Nameます。他のクラスコードを入れる必要があるかどうか、または割り当ての質問をしてください。

namespace SIT232_Assignment1
{
  // 14. create new class
  class Result
  {
    // 15. Add a private reference to a Unit objectand a private string attributes.
    private string _Grade, _Unit;

    // 16. Encapsulate the above attributes with public read-only properties
    public string Grade
    {
        get { return _Grade; }            
    }

    // 17. Create constructor for the class
    public Result(string grade, Unit _Unit) 
    {            
        _Grade = grade;            
    }

    // 18. create a public read-only property of type bool
    public bool Passed (string grade)
    {
        bool result = true;
        if (_Grade == "N")
            result = false;
        return result;
    }

    // 19. Create a public static methods 
    public static bool ValidateGrade(string grade)
    {
        bool result = false;
        if (_Grade == "N" || _Grade == "P" || _Grade == "C" || _Grade == "D" || _Grade =="HD")
            result = true;
        return result;            
    }

    // 20. Define a ToString method
    public override string ToString()
    {
        return String.Format("{0}\t{1}", _Grade);
    }
}

namespace SIT232_Assignment1
{
  // 8. Create new class
  class Unit
  {
    // 9. Add private string attributes for the unit code and unit name
    private string _Code, _Name;

    // 10. Encapsulate the above attributes with public read-only properties.
    public string Code
    {
        get { return _Code; }            
    }                
    public string Name
    {
        get { return _Name; }            
    }     

    // 11. Create constructor with two string parameters
    public Unit( string code, string name)
    {
        _Code = code;
        _Name = name;
    }

    // 27. create a private list<>
    private List<Student> _EnrolledStudents = new List<Student>();

    // 28. Encapsulate the above list with read-only
    public ReadOnlyCollection<Student> EnrolledStudents
    {
        get { return _EnrolledStudents.AsReadOnly(); }
    }

    // 29. Create a method that accecpts a single parameter
    public void RecordEnrollment(Student student)
    {
        _EnrolledStudents.Add(student);
    }

    // 30. Create a method that accecpts a single parameter
    public void RemoveEnrollment(Student student)
    {
        _EnrolledStudents.Remove(student);
    }

    // 12. Define a ToString method
    public override string ToString()
    {
        return String.Format("{0} {1}", _Code, _Name);
    }
}

さらに、私が完全に理解できないもう1つのエラーは、以下のメソッドが静的である必要があることです。_Grade 静的の属性とプロパティも作成すると、各個人に表示されるエラーが解決されることを調査しました_Gradeが、それでも最初の1つ?

if (_Grade == "N" || _Grade == "P" || _Grade == "C" || _Grade == "D" || _Grade =="HD")

public static bool ValidateGrade(string grade)
4

3 に答える 3

2

あなたの最初の質問のために:

クラスResultはから継承しUnit、のコンストラクターはResult基本クラスの1つを呼び出します。ただし、 2つの引数(および)をUnit必要とするコンストラクターが定義されているのは1つだけなので、コンストラクターでの呼び出しには2つのパラメーターが必要です。codenamebaseResult

ただし、継承したくない場合はUnit、プライベート参照を追加する必要があります。そこにあなたは次のようなものがあるでしょう

class Result {

  private Unit _Unit;

  ...

  public Result(..., Unit _Unit)
  {
      this._Unit = _Unit;
      ...
  }
}

2番目のエラー:静的メソッドは静的フィールドとプロパティにしかアクセスできないため、静的メソッドからはインスタンス変数にアクセスできません。grade提供されたものが範囲内にあることを確認したいだけなので、 t refer to the instance variable_Grade`を実行してください。

public static bool ValidateGrade(string grade)
{
  return (grade == "N" || grade == "P" ...)
}
于 2012-04-10T09:35:42.723 に答える
1

Unitクラスコンストラクターは2つの引数を必要とします。

ResultクラスでBaseを呼び出すときは、2つの引数を使用して呼び出す必要があります

于 2012-04-10T09:34:46.233 に答える
1

まず、Resultクラスでは、_Unitフィールドは文字列ではなくUnit型である必要があります。取得する基本コンストラクターのエラーは、Unitクラスのコンストラクターで2つのパラメーターを指定したためです。Unitクラスに別のコンストラクターを追加するか、Resultクラスのコンストラクターをたとえば次のように変更する必要があります。

public Result(string grade, Unit _Unit) : base(_Unit.Code, _Unit.Name)
于 2012-04-10T09:35:52.867 に答える