开始在VB.NET中编写一个简单的计算器,以提高我的语言技能。我试图编写一个段,通过按钮按下输入数字到一个变量。基本上,输入将作为字符串输入,以当前变量值作为字符串连接,结果将转换为double。使用msgbox检查输出。
我的主要课程:
Public Class FormMain
Public firstNum As Double = 1 '0 won't work for whatever reason, still figuring that out
Public secondNum As Double
Public opUsed As Boolean = False
Private Sub Button_Press(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOne.Click, ButtonTwo.Click, ButtonThree.Click,
ButtonFour.Click, ButtonFive.Click, ButtonSix.Click, ButtonSeven.Click, ButtonEight.Click, ButtonNine.Click, ButtonZero.Click
'Handles button presses for each of the digit buttons
'If branching below sends appropriate digit to the InputDigit Sub
If sender Is ButtonOne Then
Methods.InputDigit(opUsed, firstNum, secondNum, 1)
ElseIf sender Is ButtonTwo Then
Methods.InputDigit(opUsed, firstNum, secondNum, 2)
ElseIf sender Is ButtonThree Then
Methods.InputDigit(opUsed, firstNum, secondNum, 3)
ElseIf sender Is ButtonFour Then
Methods.InputDigit(opUsed, firstNum, secondNum, 4)
ElseIf sender Is ButtonFive Then
Methods.InputDigit(opUsed, firstNum, secondNum, 5)
ElseIf sender Is ButtonSix Then
Methods.InputDigit(opUsed, firstNum, secondNum, 6)
ElseIf sender Is ButtonSeven Then
Methods.InputDigit(opUsed, firstNum, secondNum, 7)
ElseIf sender Is ButtonEight Then
Methods.InputDigit(opUsed, firstNum, secondNum, 8)
ElseIf sender Is ButtonNine Then
Methods.InputDigit(opUsed, firstNum, secondNum, 9)
ElseIf sender Is ButtonZero Then
Methods.InputDigit(opUsed, firstNum, secondNum, 0)
End If
End Sub
End Class
对于我的"方法"类:
Friend Class Methods
Public Overloads Shared Sub InputDigit(ByRef opUsed As Boolean, ByVal firstNum As Double, ByVal secondNum As Double, ByVal x As Integer)
'Inputs digit into firstNum, else secondNum
If opUsed = False Then
firstNum = Convert.ToDouble(firstNum.ToString + x.ToString)
Else
secondNum = Convert.ToDouble(firstNum.ToString + x.ToString)
End If
MsgBox(firstNum)
End Sub
End Class
当我按下按钮时的输出总是我指定firstNum与按钮值连接的值,它永远不会递增。因此,如果firstNum为1,并且我按下ButtonOne,则msgbox将始终说" 11"。