我正在寫一個非常簡單的數學遊戲。我希望能夠做的是:使用變量作爲符號vb.net
Dim symbol as String
Private Sub Math()
symbol = "+"
1 symbol 1 = 2
symbol = "-"
1 symbol 1 = 0
end sub
我知道這不會工作,但它的理念是我想要的,在此先感謝。
我正在寫一個非常簡單的數學遊戲。我希望能夠做的是:使用變量作爲符號vb.net
Dim symbol as String
Private Sub Math()
symbol = "+"
1 symbol 1 = 2
symbol = "-"
1 symbol 1 = 0
end sub
我知道這不會工作,但它的理念是我想要的,在此先感謝。
正如馬克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)
去與別人是否或交換機的情況下,使用實際的符號的情況下,裏面的東西一樣
if symbol == "+":
return a+b;
if symbol == "-":
return a-b;
是的,謝謝。我理解這種方式。但是我必須儘可能少地使用代碼。有沒有更簡單的方法來做到這一點? – Kuzon
沒有通用的方法將數學符號字符串映射到它描述的內容。爲了縮短你的情況,你可以使用像Dim結果這樣的三元運算符作爲Integer = If(symbol =「+」,a + b,a-b) –
等待.... 1-1 = 1?無論如何,我認爲你應該澄清你想用*做什麼*;它可能是一個'Func'足夠了;即「Func op =(x,y)=> x + y; var sum = op(2,3); // 5'(顯然這是C#,但可以轉換爲VB) –
可能的重複[在JavaScript中執行數學在vb.net像Eval](http://stackoverflow.com/questions/1452282/doing-math- in-vb-net-like-eval-in-javascript) –