0

私は C# を学んでおり、現在 OOP の概念を調べています。私たちはこの質問を受けましたが、その一部を理解するのに苦労しています。

質問の主旨はこうです。

という名前のクラスを定義しOperatorます。

そのクラスは、次のメソッドを実装する必要があります。

  • IsPositive- 整数型の値を受け取り、正の場合は true、そうでない場合は false を返します。
  • IsDayOfWeek- 日時値と曜日名 (例: 土曜日) を受け取り、値が指定された曜日名を表す場合は true、そうでない場合は false を返します。
  • GetWords- 単語 (段落など) を含むテキストを受け取り、すべての単語を含む 1 次元の文字列配列を返します。テキストに使用可能な単語がない場合は、空の文字列配列。

Operator クラスから派生し、派生クラスからオブジェクトを作成できる必要があります。

開発者は、特定の型の派生クラスからこれらのメソッドを使用できます。つまり、1 番目の方法は type = 'N' (数値) の場合に使用でき、2 番目の方法は type が 'D' (日付) の場合に使用でき、3 番目の方法は type が 'S' (文字列) の場合に使用できます。したがって、オブジェクトをインスタンス化するときに型を指定し、クラス操作全体で使用できるようにする必要があります。

私はメソッドを書くのに十分な知識を持っていますが、私が理解していないのは私が太字にした部分です。ある型が与えられ、オブジェクトをインスタンス化するときにその型を提供する必要があり、クラス全体で利用できる必要があるときに、あるメソッドを使用できるとはどういう意味ですか? 彼らはプロパティについて話しているのですか?

私はそれを試してみました。以下は私のコードです。

public class Operator
    {
        private int _n;
        private DateTime _d;
        private string _s;

        public DataProcessor(int n, DateTime d, string s)
        {
            this.N = n;
            this.D = d;
            this.S = s;
        }


        public int N
        {
            set { _n = value; }
        }

        public DateTime D
        {
            set { _d = value; }
        }

        public string S
        {
            set { _s = value; }
        }


        public bool IsPositive()
        {
            //method code goes here
            return false;
        }

        public bool IsDayOfWeek()
        {
            //method code goes here
            return false;
        }

    }

正しい道を進んでいるかどうかはわかりません。誰かがこれに光を当てることができますか?

4

1 に答える 1

2

これは私がそれを読む方法です:

public class Operator
{
    public char TypeChar { get; set; }

    public Operator(char operatorType) { this.TypeChar = operatorType; }

    public bool IsPositive(int N)
    {
        if (TypeChar != 'N')
           throw new Exception("Cannot call this method for this type of Operator");

    // method implementation code
    }

    // same for the other methods
}

public NumericOperator : Operator
{
    public NumericOperator() : base('N') {}
}
于 2012-11-29T16:57:13.970 に答える