我正在学习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;
}
}
我不确定我是否正确行事。有人可以对此有所了解吗?
答案 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') {}
}