2015-10-04 102 views
1

我想将字符串变量转换为文字。例如,将字符串变量值转换为文字

string parametervalue= "+"; 

我想这个字符串变量转换为文字,这样我可以使用

int total = valueA (parametervalue) valueB; 

所以应该在运行时被称为

total = valueA + valueB 

但如何将字符串变量转换为文字。有什么办法做到这一点

Appriciate你的帮助。

+0

AFAIK有没有办法在C#中这样做 - 你基本上是要求推广的元编程cababilites这里 – Carsten

+2

做类似的事情的明显方法是'Func add =(a,b)=> a + b; int total = add(valueA,valueB)' – Carsten

+0

哦,这是有帮助的。谢谢:)我可能会使用你建议的替代方法。 –

回答

1

不幸的是C#不支持你所要求的。

但有些东西接近你想要的东西,可以在C#6上使用,并且使字符串的播放更容易一些。

这就是所谓的字符串插值,这里有一个例子:

var x = $"\{this.FirstName} \{this.LastName}" 

,其中名字和姓氏的变量。 了解更多关于它的信息here

2

这是否适合您?当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(); 
     } 
2

如何使用扩展方法

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);