2012-12-20 267 views
3

可能重複:
Is there a string math evaluator in .NET?將字符串轉換爲運算符?

有沒有辦法給操作員代碼轉換沒有做對"+", "-", "*", "/"檢查,然後傳遞價值?

using System; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     private static void Main(string[] args) 
     { 
      string operator = "+"; 
      int inputOne = 2; 
      int inputTwo = 5; 

      Console.WriteLine(Result(inputOne, inputTwo, operator)); 
      Console.ReadLine(); 
     } 


     public static string Result(int one, int two, string computeOperator) 
     { 
      if (computeOperator == "+") 
      { 
       return (one + two).ToString(); 
      } 

      if (computeOperator == "-") 
      { 
       return (one - two).ToString(); 
      } 

      //and so on... 

      return "0"; 
     } 
    } 
} 
+3

找到一個很好的數學表達式解析器。 – Oded

+1

你可以傳遞一個委託,比如'Func '。 – Servy

+1

請參閱:http://stackoverflow.com/questions/355062/is-there-a-string-math-evaluator-in-net – SQLMason

回答

6

沒有,不是你似乎想要的方式。根據定義,A string literal不能轉換爲運算符。

+0

我不知道。 @Dan Andrews在上面發佈的鏈接中有幾種可能的方法。 – David

+0

@DavidStratton底層,那些可能的方法是做一個字符串比較類似於OP的做法。他們不會將字符串文字轉換爲運算符。 –

+0

你說得對。我想我只是在看最後的結果 - 「他能通過採取不同的方法達到他想要的效果(用一個明顯是數學表達式並計算它的字符串)」,而不是「他能用他的方法達到他想要的效果嗎?他具體詢問「。但你指出他所問的方法是行不通的。有時我會非常關注最後的結果,我忘了關注如何到達那裏。有時我需要改進。我敢打賭,如果我更關注如何到達那裏,我會成爲一名更好的編碼員。 ;-) – David