C#中的类设计

时间:2012-11-29 16:06:12

标签: c# oop class

我正在学习C#,目前我们正在研究OOP概念。我们已经得到了这个问题,我很难理解它的某些部分。

问题的要点是这个。

定义名为Operator的小组。

该类应该实现以下方法。

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

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

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

    }

我不确定我是否正确行事。有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分: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') {}
}