我需要做一些数学运算,比如: a+b,a+b,a/b,a*b等等。
我想知道是否存在操作符返回类型,所以当我调用方法(返回操作符)来使用返回的数据时(所以是操作符)。
如果不存在,我怎么能从字符串中得到那个操作符。例如:
string myOperator = "+";
int a = 5, b = 10;
int outcome = 0;我需要:
outcome = a + b;所以我需要那个+操作员。如果我创建了一个给出操作符的方法,我应该使用什么作为返回类型?
发布于 2014-03-12 16:16:27
不,运算符没有返回类型。但是,您可以使用Func<T1,T2,R>来生成一个函子,它具有运算符的行为,但具有函数的语法。
Func<int,int,int> myOperator1 = (x,y) => (x+y);
Func<int,int,int> myOperator2 = (x,y) => (x-y);
int a = 5, b = 10;
int outcome1 = myOperator1(a, b); // Returns 15
int outcome2 = myOperator2(a, b); // Returns -5发布于 2014-03-12 16:35:08
是你的问题。如何解析我想要的操作符(表示为字符串)?
过于简单化..。但也许是这样的?
int fuzzyMath(int a, int b, string literalOperator) {
string cleanedOperator = literalOperator.Trim();
if ("+".Equals(cleanedOperator )) {
return a+b;
} else if ("-".Equals(cleanedOperator )) {
return a-b;
} //and so on
}I‘我不确定你能不能导出一个运算符作为一种类型,或者可以在表达式中自由使用的值,但是你可以测试期望的文字值并根据它计算.
https://stackoverflow.com/questions/22357435
复制相似问题