2015-10-04 101 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);