2014-02-06 114 views
0

我在VB.net中創建一個計算器,我試圖獲取它,所以當用戶輸入一個數字時,它將被存儲到一個變量,然後當他們點擊一個數學運算符,如「 「它被存儲在一個char變量,我知道怎麼做,但是當我做,然後打印出來的文本框的實際和本身,因此,例如作爲字符的數學運算符

Dim num as integer = 1 
Dim operator as char = "+" 
txtbox.text = num & operator & num 

剛剛打印出1 + 1到文本框,但我想它所以它的總和,那麼用戶可以使用任何數學運算符,然後獲得存儲在一個字符值,然後做出的總和,然後打印出來的文本框。

+0

你究竟在努力實現什麼?使用'select case'或'if else'塊 –

回答

1

寫這樣:

Select Case operator 
case "+" 
txtbox.text = num + num 
case "-" 
txtbox.text = num - num 

End Select 
1

有一個在VB.NET評估其存儲在一個字符串的數學方程沒有內置的方法。爲了做這樣的事情,你需要編寫自己的expression-tree解析器,然後評估表達式樹。這是一件相當複雜的事情,特別是對初學者來說。因此,當它是一個重要的功能支持時,大多數人會訴諸使用現有的表達式評估程序庫(例如NCalc),以免重蹈覆轍。另一個流行的選擇是在VB.NET中使用CodeDom的東西來構造表達式作爲.NET方法,它返回結果值,將其編譯到內存中的程序集,然後執行該方法以獲得結果。

然而,在這種情況下,如果你是構造表達式的情況下,首先將它構造成一個字符串以轉換並再次解析爲表達式樹似乎很愚蠢。當點擊計算器的按鈕時直接構建表達式樹或者立即執行操作並且根本不保存表達式會更簡單。

相關問題