Vb.net 从字符串“转换”&引用;输入';双倍';使用TryParse方法时无效
我在VB.Net中有一个简单的加法程序,我正在尝试测试文本框是否只接收数字而不接收任何字母。我需要使用TryParse方法,但我无法确定wny,因为我仍然收到此错误。请帮忙Vb.net 从字符串“转换”&引用;输入';双倍';使用TryParse方法时无效,vb.net,tryparse,Vb.net,Tryparse,我在VB.Net中有一个简单的加法程序,我正在尝试测试文本框是否只接收数字而不接收任何字母。我需要使用TryParse方法,但我无法确定wny,因为我仍然收到此错误。请帮忙 Public Class perrySolutionForm Dim numberOne As Double Dim numberTwo As Double Public Function sum(ByRef numberOne As Double, ByRef numberTwo As Double) sum =
Public Class perrySolutionForm
Dim numberOne As Double
Dim numberTwo As Double
Public Function sum(ByRef numberOne As Double, ByRef numberTwo As Double)
sum = Val(numberOne) + Val(numberTwo)
End Function
Public Function difference(ByRef numberOne As Double, numberTwo As Double)
difference = Val(numberOne) - Val(numberTwo)
End Function
Private Sub sumButton_Click(sender As Object, e As EventArgs) Handles sumButton.Click
If numberOneInput.Text = "" Then
MessageBox.Show("Both fields must be filled out.")
If Double.TryParse(numberOneInput.Text, numberOne) Then
MessageBox.Show("Success")
'numberOne has a Double value
Else
MessageBox.Show("Failure")
'numberOne = Nothing
End If
Else
outputLabel.Text = sum(numberOne, numberTwo)
End If
End Sub
Private Sub numberOneInput_TextChanged(sender As Object, e As EventArgs) Handles numberOneInput.TextChanged
numberOne = numberOneInput.Text
End Sub
Private Sub numberTwoInput_TextChanged(sender As Object, e As EventArgs) Handles numberTwoInput.TextChanged
numberTwo = numberTwoInput.Text
End Sub
这是您使用TryParse的方式:
If Double.TryParse(numberOneInput.Text, numberOne) Then
'code for a success
'numberOne has a Double value
Else
'code for a failure
'numberOne = Nothing
End If
如果文本为空,则结束代码块:
If String.IsNullOrWhiteSpace(numberOneInput.Text) Then
MessageBox.Show("Value is incorrect format")
Exit Sub
End If
使用
Val退出
这是遗留代码。请在使用之前转换您的类型-即numberOne=numberOneInput.Text
=错误的编码。您能给我一个例子吗?这是我在VB.Net的第一个学期,所以我指的是所给的教科书。ThanksPut选项位于源代码文件的顶部并重新编译。修复编译器现在告诉您的错误。这就是Double.TryParse
为您所做的,它将字符串值转换为poss.Option Strict On,这确实很好。因此我尝试了这一点,第二次我在NumberOnInput文本框中放入一个字母,它仍然显示“从字符串“”到键入“Double”的转换无效”。我更新了上面的代码。Thanks此函数接受空字符串,但由于失败,将跳转到if语句的Else
部分。你能告诉我你说的是哪一行代码吗?它抱怨的那一行是“numberOne=numberOneInput.Text”。至少这是程序中断后突出显示的内容。我应该注意的是,我没有收到任何消息框,程序只是对了,这就是为什么在将值分配到错误类型之前需要转换值。我仍然不知道如何在分配值之前转换值。使用“Option Explicit On”后,它更改了“numberOne=numberOneInput.Text”。到“numberOne=CDbl(numberOneInput.Text)”。这就是你说的吗?因为这个节目还在呕吐。