0

我正在学习 C#,目前我们正在研究 OOP 概念。我们已经收到了这个问题,我正在努力理解其中的某些部分。

问题的要点是这样的。

定义一个名为Operator.

该类应实现以下方法。

  • IsPositive- 接收一个整数类型的值,如果为正则返回 true,否则返回 false。
  • IsDayOfWeek- 接收日期时间值和工作日名称(例如星期六),如果该值表示给定的工作日名称,则返回 true,否则返回 false。
  • GetWords- 接收包含单词(比如段落)的文本并返回包含所有单词的一维字符串数组。如果文本中没有可用的单词,则为空字符串数组。

它应该能够从 Operator 类派生,然后从派生类创建对象。

允许开发人员从派生类中为给定类型使用这些方法。换句话说,当 type = 'N'(数字)时可以使用第一种方法,当 type 为 'D'(日期)时可以使用第二种方法,而当 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 回答