我想将字符串变量转换为文字。例如,将字符串变量值转换为文字
string parametervalue= "+";
我想这个字符串变量转换为文字,这样我可以使用
int total = valueA (parametervalue) valueB;
所以应该在运行时被称为
total = valueA + valueB
但如何将字符串变量转换为文字。有什么办法做到这一点
Appriciate你的帮助。
我想将字符串变量转换为文字。例如,将字符串变量值转换为文字
string parametervalue= "+";
我想这个字符串变量转换为文字,这样我可以使用
int total = valueA (parametervalue) valueB;
所以应该在运行时被称为
total = valueA + valueB
但如何将字符串变量转换为文字。有什么办法做到这一点
Appriciate你的帮助。
不幸的是C#不支持你所要求的。
但有些东西接近你想要的东西,可以在C#6上使用,并且使字符串的播放更容易一些。
这就是所谓的字符串插值,这里有一个例子:
var x = $"\{this.FirstName} \{this.LastName}"
,其中名字和姓氏的变量。 了解更多关于它的信息here
这是否适合您?当parametervalue来自用户时,必须对其进行验证。
switch (parametervalue)
{
case "+":
total = valueA + valueB;
break;
case "-":
total = valueA - valueB;
break;
case "*":
total = valueA * valueB;
break;
case "/":
total = valueA/valueB;
break;
default:
throw new NotSupportedException();
}
如何使用扩展方法
public static double Calculate(this string operation, int x, int y)
{
switch (operation)
{
case "+": return x + y;
case "-": return x - y;
case "*": return x * y;
case "/": return x/y;
default: throw new Exception("invalid operator");
}
}
然后你可以使用它像这样var result = parametervalue.Calculate(valueA, valueB);
AFAIK有没有办法在C#中这样做 - 你基本上是要求推广的元编程cababilites这里 – Carsten
做类似的事情的明显方法是'Func add =(a,b)=> a + b; int total = add(valueA,valueB)' –
Carsten
哦,这是有帮助的。谢谢:)我可能会使用你建议的替代方法。 –