Vb.net BC30451视觉基本错误

Vb.net BC30451视觉基本错误,vb.net,function,calculator,Vb.net,Function,Calculator,我正试图用VisualBasic制作一个计算器,但它却向我抛出了这个错误。将CastNumbers()替换为函数的代码在某种程度上修复了错误,但我仍然好奇如何修复这个问题。我在互联网上找不到任何我能理解的相关答案,因为这是我两年来的第一个编程项目(我开始在CSharp中做一些东西,但我停止了) 您已经在函数中定义了变量,并试图在该函数之外使用它们。这就是问题所在 试试这个 Public Class Form1 Dim firstNum As Integer D

我正试图用VisualBasic制作一个计算器,但它却向我抛出了这个错误。将
CastNumbers()
替换为函数的代码在某种程度上修复了错误,但我仍然好奇如何修复这个问题。我在互联网上找不到任何我能理解的相关答案,因为这是我两年来的第一个编程项目(我开始在
CSharp
中做一些东西,但我停止了)


您已经在函数中定义了变量,并试图在该函数之外使用它们。这就是问题所在

试试这个

Public Class Form1
         Dim firstNum As Integer
         Dim secondNum As Integer
    Private Sub b_ClickMe_Click(sender As Object, e As EventArgs) Handles b_ClickMe.Click

        MyTextBox.Text = "Hello"

        'Dim firstNum As Integer = CInt(number1.Text)

        'Dim secondNum As Integer = CInt(number2.Text)

        'sum.Text = firstNum + secondNum

    End Sub

    Public Function CastNumbers() 'Converts input to integer, casts as firstNum and secondNum

        firstNum = CInt(number1.Text)

        secondNum = CInt(number2.Text)

    End Function

    Private Sub b_plus_Click(sender As Object, e As EventArgs) Handles b_plus.Click

        CastNumbers()

        sum.Text = firstNum + secondNum

    End Sub

    Private Sub b_minus_Click(sender As Object, e As EventArgs) Handles b_minus.Click

        CastNumbers()

        sum.Text = firstNum - secondNum

    End Sub

    Private Sub b_multiply_Click(sender As Object, e As EventArgs) Handles b_multiply.Click

        CastNumbers()

        sum.Text = firstNum * secondNum

    End Sub

    Private Sub b_divide_Click(sender As Object, e As EventArgs) Handles b_divide.Click

        CastNumbers()

        sum.Text = firstNum / secondNum

    End Sub

End Class

谢谢大家的帮助。代码现在看起来像这样

Public Class Form1

    Dim firstNum As Integer

    Dim secondNum As Integer

    Private Sub b_ClickMe_Click(sender As Object, e As EventArgs) Handles b_ClickMe.Click

        MyTextBox.Text = "Hello"

    End Sub

    Public Function ReadNumbers() 'Converts input to integer, casts as firstNum and secondNum

        firstNum = CInt(number1.Text)

        secondNum = CInt(number2.Text)

    End Function

    Private Sub b_plus_Click(sender As Object, e As EventArgs) Handles b_plus.Click

        ReadNumbers()

        sum.Text = firstNum + secondNum

    End Sub

    Private Sub b_minus_Click(sender As Object, e As EventArgs) Handles b_minus.Click

        ReadNumbers()

        sum.Text = firstNum - secondNum

    End Sub

    Private Sub b_multiply_Click(sender As Object, e As EventArgs) Handles b_multiply.Click

        ReadNumbers()

        sum.Text = firstNum * secondNum

    End Sub

    Private Sub b_divide_Click(sender As Object, e As EventArgs) Handles b_divide.Click

        ReadNumbers()

        sum.Text = firstNum / secondNum

    End Sub

End Class

你在哪里定义了数字1和数字2?定义?什么意思?我将number1和number2作为表单中的文本框(我猜是creator)。您还需要将除法代码包装在try/catch中,因为除法为零将引发异常。
CastNumbers()
方法本身也是如此。如果文本框包含无法转换为整数的内容,将引发异常。如果不返回任何内容,请不要使用。让它成为一个新的。
Public Class Form1

    Dim firstNum As Integer

    Dim secondNum As Integer

    Private Sub b_ClickMe_Click(sender As Object, e As EventArgs) Handles b_ClickMe.Click

        MyTextBox.Text = "Hello"

    End Sub

    Public Function ReadNumbers() 'Converts input to integer, casts as firstNum and secondNum

        firstNum = CInt(number1.Text)

        secondNum = CInt(number2.Text)

    End Function

    Private Sub b_plus_Click(sender As Object, e As EventArgs) Handles b_plus.Click

        ReadNumbers()

        sum.Text = firstNum + secondNum

    End Sub

    Private Sub b_minus_Click(sender As Object, e As EventArgs) Handles b_minus.Click

        ReadNumbers()

        sum.Text = firstNum - secondNum

    End Sub

    Private Sub b_multiply_Click(sender As Object, e As EventArgs) Handles b_multiply.Click

        ReadNumbers()

        sum.Text = firstNum * secondNum

    End Sub

    Private Sub b_divide_Click(sender As Object, e As EventArgs) Handles b_divide.Click

        ReadNumbers()

        sum.Text = firstNum / secondNum

    End Sub

End Class