【问题标题】:Visual basic writing smallest number programVisual basic编写最小数程序
【发布时间】:2018-09-13 17:40:31
【问题描述】:

我是 Visual Basic 的新手,我正在尝试编写一个程序来确定三个中最小的数字。每次我运行程序时,它都不会弹出消息框。这是我目前所拥有的:

公开课表1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim TextBox1 As Integer
    Dim TextBox2 As Integer
    Dim TextBox3 As Integer

    TextBox1 = Val(TextBox1)
    TextBox2 = Val(TextBox2)
    TextBox3 = Val(TextBox3)

    If TextBox1 < TextBox2 And TextBox1 < TextBox3 Then
        MessageBox.Show(TextBox1)


    End If



End Sub

【问题讨论】:

  • 请为您的所有项目启用 Option Strict。它会为您指出许多错误。
  • 您的按钮事件不知道您指的是表单上的文本框。它只看到 3 个初始化为 0 的 Integer 类型的局部变量。当默认属性仍然存在时,这看起来像 VB6 代码。
  • Val 函数是 VB6 遗留下来的,可用于向后兼容。替换为 .Net 方法 .Parse、.TryParse()、CType(value, Type)、CInt() 或 Convert.ToInt32 ()

标签: vb.net


【解决方案1】:

可以发一下前端吗?

简而言之,您的值(TextBox1、2、3)没有任何值,因为您没有为它们分配任何值

Dim value1 as Integer = CInt(TextBox1.Text)
Dim value2 as Integer = CInt(TextBox2.Text)

我假设您在前端有文本框,您可以在其中输入数字。在代码隐藏中,您需要使用 .Text 属性从文本框中提取值。 CInt 只是一种将字符串转换为整数的方法。

另外,我会使用“AndAlso”逻辑而不是“And”——它的性能更好。如果第一组逻辑失败,那么它不会运行第二部分,从而节省一些性能时间。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles     Button1.Click

    Dim value1 As Integer = CInt(TextBox1.Text)
    Dim value2 As Integer = CInt(TextBox2.Text)
    Dim value3 As Integer = CInt(TextBox3.Text)

    If value1 < value2 AndAlso value1 < value3 Then
        MessageBox.Show(value1.ToString())
    Else
        MessageBox.Show("Some output here....")
    End If



End Sub

【讨论】:

    【解决方案2】:

    您还可以将 .Min 与数组一起使用来查找最小值。

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Declare an array of type Integer with 3 elements
        Dim value(2) As Integer
        'A variable to hold the parsed value of TextBoxes
        Dim intVal As Integer
        If Integer.TryParse(TextBox1.Text, intVal) Then
            'Assign the parsed value to an element of the array
            value(0) = intVal
        End If
        If Integer.TryParse(TextBox2.Text, intVal) Then
            value(1) = intVal
        End If
        If Integer.TryParse(TextBox3.Text, intVal) Then
            value(2) = intVal
        End If
        'Use .Min to get the smalles value
        Dim minNumber As Integer = value.Min
        MessageBox.Show($"The smalles value is {minNumber}")
        'Or
        'in older versions of vb.net
        'MessageBox.Show(String.Format("The smallest value is {0}", minNumber))
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多