Convert.ToInt16 vb.net

时间:2013-03-04 08:23:55

标签: vb.net visual-studio-2010

我使用以下代码作为我自己的学习进度:

Public Class Form1

    Private Sub BtnAntwoord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAntwoord.Click

        Dim testNummer As Integer
        Dim uitkomst As Single
        Dim waarde1 As Integer = Convert.ToInt16(txtNummers1)
        Dim waarde2 As Integer = Convert.ToInt16(txtNummers2)

        uitkomst = (waarde1 * waarde2)

        testNummer = Convert.ToString(uitkomst)


        MsgBox(testNummer)
    End Sub
End Class

我想要完成的是一个带有2个文本字段和一个按钮的小窗口,当按下时,会在弹出窗口中显示问题“waarde 1 * waarde2”的答案。

执行此代码时,会出现以下错误:

 InvalidCastException was unhandled

和行“waarde1 As Integer = Convert.ToInt16(txtNummers1)”是高亮的

我本人并不是在寻找答案,只是理解为什么这不起作用,因为我对vb.net非常陌生并且我正在努力扩展我对该语言的了解。

1 个答案:

答案 0 :(得分:3)

如果txtNummers1txtNummers2是文本框,则应编写

    Dim waarde1 As Short = Convert.ToInt16(txtNummers1.Text)
    Dim waarde2 As Short = Convert.ToInt16(txtNummers2.Text)

您无法将TextBox类型转换为整数类型。您将TextBox的Text(字符串类型)属性转换为Integer,假设此属性实际包含一个数字。
另外,为什么要转换为16位数字类型,然后将结果分配给32位类型?

更好的方法是以下

    Dim waarde1 As Short 
    Dim testNum as String = txtNummers1.Text
    if Int16.TryParse(testNum, waarde1) Then
         Console.WriteLine("It is a 16 bit number " + waarde1.ToString)
    else
         Console.WriteLine("Not a 16 bit number " + waarde1.ToString)

Here MSDN on TryParse