通过串联将计数器中的按钮数字添加到变量中

时间:2014-10-14 20:44:18

标签: vb.net visual-studio-2013 calculator

开始在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"。

0 个答案:

没有答案