【发布时间】:2016-03-14 16:05:04
【问题描述】:
我对编程比较陌生,这就是我想做的事情: 我有一个包含属性“运算符”的基类,它的派生类是用于数学运算的类,因此运算符是“-”“+”等。现在我需要创建一个这些运算符的数组以在我的计算器引擎中使用。我只有一个操作方法列表,如何只提取操作符并将它们放入数组中?这是我已经拥有的,但我被要求使用已经存在的运营商
char[] operatorArray = {'+', '-', '/', '*'};
int indexOfLastOperatorBeforeSquare = leftOfSquare.LastIndexOfAny(operatorArray);
这是包含 Operator 属性的基类:
public abstract class OperationBase
{
public abstract string Operator { get; set; }
public abstract string Execute(string leftOperator, string rightOperator);
}
以Addition Class的构造函数为例:
public Addition()
{
Operator = "+";
}
【问题讨论】:
-
您可以使用反射来查找从
OperationBase派生的所有类型,实例化它们并获取属性值。 (我认为class Addition : OperatorBase的运算符应该有一个 const:它不能在运行时更改;这样就不需要实例化它来获取它的运算符。)
标签: c# arrays properties calculator base-class