2011-08-25 76 views
0

我正在寫一個非常簡單的數學遊戲。我希望能夠做的是:使用變量作爲符號vb.net

Dim symbol as String 

Private Sub Math() 
    symbol = "+" 
    1 symbol 1 = 2 

    symbol = "-" 
    1 symbol 1 = 0 
end sub 

我知道這不會工作,但它的理念是我想要的,在此先感謝。

+1

等待.... 1-1 = 1?無論如何,我認爲你應該澄清你想用*做什麼*;它可能是一個'Func '足夠了;即「Func op =(x,y)=> x + y; var sum = op(2,3); // 5'(顯然這是C#,但可以轉換爲VB) –

+0

可能的重複[在JavaScript中執行數學在vb.net像Eval](http://stackoverflow.com/questions/1452282/doing-math- in-vb-net-like-eval-in-javascript) –

回答

1

正如馬克Gravell已經提到的,你可以使用lambda表達式。這是它如何工作的VB:

Private Sub Calculate(f As Func(Of Double, Double, Double)) 
    Dim a As Double = 1.5, b As Double = 3.14 
    Console.WriteLine(f(a,b)); 
End Sub 

您需要調用計算是這樣的:

Calculate(Function(x,y) x+y) 
Calculate(Function(x,y) x-y) 
Calculate(Function(x,y) x*y) 
1

去與別人是否或交換機的情況下,使用實際的符號的情況下,裏面的東西一樣

if symbol == "+": 
return a+b; 

if symbol == "-": 
return a-b; 
+0

是的,謝謝。我理解這種方式。但是我必須儘可能少地使用代碼。有沒有更簡單的方法來做到這一點? – Kuzon

+0

沒有通用的方法將數學符號字符串映射到它描述的內容。爲了縮短你的情況,你可以使用像Dim結果這樣的三元運算符作爲Integer = If(symbol =「+」,a + b,a-b) –