Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从字符串“转换”&引用;输入';双倍';使用TryParse方法时无效_Vb.net_Tryparse - Fatal编程技术网

Vb.net 从字符串“转换”&引用;输入';双倍';使用TryParse方法时无效

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 =

我在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 = 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)”。这就是你说的吗?因为这个节目还在呕吐。