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