如何在vb.net中调试强制执行?

米兰达·林恩(Miranda Lynn)

我遇到强制转换异常,并且已经多次重写了此代码。我在以下行中遇到异常:

If (CInt(hHurricaneYear) < CInt(_strYears(hAverage))) Then

而且我只是在取得成果lblNumberOfHurricans其他两个标签未显示任何结果。我以为在出现强制转换异常时得到了它。

任何人都可以建议如何获取结果并阻止异常吗?

这是到目前为止我所拥有的(至少是最后一次尝试)。

Option Strict On

Public Class frmHurricaneStatistics

    '   Class level Private variables.
    Public Shared _intSizeOfArray As Integer = 20
    Private _strYears(_intSizeOfArray) As String
    Private _intNumberOfHurricans(_intSizeOfArray) As Integer

    Private Sub frmHurricaneStatistics_Load(sender As Object, e As EventArgs
                                            ) Handles MyBase.Load

        '   This load event reads the inventory text file and fills
        '   the ComboBox object with the Hurricane Statistics.

        '   Initialize an instace of the streamreader object and declare variables.
        Dim objReader As IO.StreamReader
        Dim strHurricaneStatistics As String = "Hurricanes.txt"
        Dim intCount As Integer = 0
        Dim intFill As Integer
        Dim strFileError As String = "The file is not available. Please restart the
            application when the file is available."

        '   Verify the Hurricane.txt file exists.
        If IO.File.Exists(strHurricaneStatistics) Then
            objReader = IO.File.OpenText(strHurricaneStatistics)

            '   Read the file line by line until the file is completed.
            Do While objReader.Peek <> -1
                _strYears(intCount) = objReader.ReadLine()
                _intNumberOfHurricans(intCount) = Convert.ToInt32(objReader.ReadLine())
                intCount += 1
            Loop
            objReader.Close()

            '   The ComboBox objext is filled with the Years for Hurricanes.
            For intFill = 0 To (_strYears.Length - 1)
                cmbYears.Items.Add(_strYears(intFill))
            Next
        Else
            MsgBox(strFileError, , "Error")
            Close()

            '  If ComboBox is filled then enable the Display Statistics button.
            'btnDisplayStatistics.Enabled = True
        End If
    End Sub

    Private Sub btnDisplayStatistics_Click(sender As Object, e As EventArgs
                                           ) Handles btnDisplayStatistics.Click

        '   This click event calls the sub procedures for the selected years and
        '   the number of hurricans in that year.
        Dim intSelectedYear As Integer
        Dim strMissingSelection As String = "Missing Selection"
        Dim strSelectAYearError As String = "Please Select a Year"

        '   If the ComboBox object has a selection, Display Statistics.
        If cmbYears.SelectedIndex >= 0 Then
            intSelectedYear = cmbYears.SelectedIndex
        Else
            MsgBox(strSelectAYearError, , strMissingSelection)
        End If


Private Sub btnDisplayStatistics_Click(sender As Object, e As EventArgs
                                           ) Handles btnDisplayStatistics.Click

        '   This click event calls the sub procedures for the selected years and
        '   the number of hurricans in that year.
        Dim intSelectedYear As Integer
        Dim strMissingSelection As String = "Missing Selection"
        Dim strSelectAYearError As String = "Please Select a Year"

        '   If the ComboBox object has a selection, call the Display Statistics procedure.
        If cmbYears.SelectedIndex >= 0 Then
            intSelectedYear = cmbYears.SelectedIndex
        Else
            MsgBox(strSelectAYearError, , strMissingSelection)
        End If

        '   This procedure MakeLabelsVisible Is called to display the labels
        '   And the results.
        MakeLabelsVisible()

        Dim hHurricaneAverage As Integer
        Dim hHurricaneYear As Integer = 0

        For hAverage As Integer = 0 To _strYears.Length - 1
            If (CInt(hHurricaneYear) < CInt(_strYears(hAverage))) Then
                hHurricaneYear = CInt(CType(CInt(_strYears(hAverage)), String))
            End If
            hHurricaneAverage = hHurricaneAverage + CInt((_strYears.ToString))

            hHurricaneAverage = CInt(hHurricaneAverage / _strYears.Length)
        Next

        '   Display the statistics for the Storm Average in the selected Year
        '   and the most active year within the range of year.

        lblNumberOfHurricanes.Text = "The Number of Hurricanes in the Year " &
            _strYears(intSelectedYear) & " is " & _intNumberOfHurricans(intSelectedYear).ToString() & "."
        lblAvergeNumberHurricanes.Text = "The Average Number of Storms was " &
            hHurricaneAverage & " Hurricanes."

        Dim intSizeOfArray As Integer = Nothing
        lblMostStorms.Text = "The Year "(CInt(_strYears(CInt(hHurricaneYear.ToString())) & " 
            Had The Most Storms Between " & (_strYears(0) & _strYears(20).ToString)))

    End Sub
Option strict on
达斯汀

您的错误在于您试图将整个字符串数组转换为整数:

hHurricaneAverage = hHurricaneAverage + CInt((_strYears.ToString))

您将需要调用_strYears的索引:

hHurricaneAverage = hHurricaneAverage + CInt((_strYears(hAverage).ToString))

这也将解释为什么其他标签不更新,因为hHurricanAverage永远不会被计算。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在.Net中强制执行OutOfMemoryException

来自分类Dev

如何在Perl中强制执行long double

来自分类Dev

如何在Chrome中强制执行504错误

来自分类Dev

如何在Perl中强制执行long double

来自分类Dev

如何在Java中强制执行构造函数

来自分类Dev

如何在GNOME Web中强制执行大文本?

来自分类Dev

如何在Jenkins DSL中强制执行参数排序?

来自分类Dev

如何在matplotlib中的网格内强制执行图?

来自分类Dev

如何在 Antlr 中强制执行某些规则

来自分类Dev

如何在 Java <= 8 中强制执行模块边界

来自分类Dev

Eclipse:如何在调试时强制执行特定的Java语句?

来自分类Dev

Eclipse:如何在调试时强制执行特定的Java语句?

来自分类Dev

如何从域名中删除www并强制执行https?

来自分类Dev

如何在ASP.Net WebForms的DataField上强制执行toUpper?

来自分类Dev

如何在python中从python中强制执行或呈现浏览器中的脚本?

来自分类Dev

Python中的枚举:如何在方法参数中强制执行

来自分类Dev

如何在Spark SQL中强制执行内存中的分块排序?

来自分类Dev

如何在git中强制执行“文件名中没有空格”策略?

来自分类Dev

如何在Spark SQL中强制执行内存中的分块排序?

来自分类Dev

如何在phpstorm中对数组声明强制执行长语法?

来自分类Dev

GHC如何在多线程应用程序中强制执行评估?

来自分类Dev

如何在Play 2.x中强制执行JSON的严格序列化

来自分类Dev

如何在Sublime中强制执行50个字符的提交摘要行?

来自分类Dev

如何在RedShift中强制执行参照完整性?

来自分类Dev

如何在SQL(Postgres)中强制执行过滤器评估顺序?

来自分类Dev

如何在Java中的for循环中的每个update()之后强制执行repaint()?

来自分类Dev

如何在go框架中为不同的测试强制执行测试顺序?

来自分类Dev

如何在视图上强制执行约束,以确保在MSSQL中返回0行

来自分类Dev

如何在for循环中强制执行多个QComboBox中的任何一个的最小索引?

Related 相关文章

  1. 1

    如何在.Net中强制执行OutOfMemoryException

  2. 2

    如何在Perl中强制执行long double

  3. 3

    如何在Chrome中强制执行504错误

  4. 4

    如何在Perl中强制执行long double

  5. 5

    如何在Java中强制执行构造函数

  6. 6

    如何在GNOME Web中强制执行大文本?

  7. 7

    如何在Jenkins DSL中强制执行参数排序?

  8. 8

    如何在matplotlib中的网格内强制执行图?

  9. 9

    如何在 Antlr 中强制执行某些规则

  10. 10

    如何在 Java <= 8 中强制执行模块边界

  11. 11

    Eclipse:如何在调试时强制执行特定的Java语句?

  12. 12

    Eclipse:如何在调试时强制执行特定的Java语句?

  13. 13

    如何从域名中删除www并强制执行https?

  14. 14

    如何在ASP.Net WebForms的DataField上强制执行toUpper?

  15. 15

    如何在python中从python中强制执行或呈现浏览器中的脚本?

  16. 16

    Python中的枚举:如何在方法参数中强制执行

  17. 17

    如何在Spark SQL中强制执行内存中的分块排序?

  18. 18

    如何在git中强制执行“文件名中没有空格”策略?

  19. 19

    如何在Spark SQL中强制执行内存中的分块排序?

  20. 20

    如何在phpstorm中对数组声明强制执行长语法?

  21. 21

    GHC如何在多线程应用程序中强制执行评估?

  22. 22

    如何在Play 2.x中强制执行JSON的严格序列化

  23. 23

    如何在Sublime中强制执行50个字符的提交摘要行?

  24. 24

    如何在RedShift中强制执行参照完整性?

  25. 25

    如何在SQL(Postgres)中强制执行过滤器评估顺序?

  26. 26

    如何在Java中的for循环中的每个update()之后强制执行repaint()?

  27. 27

    如何在go框架中为不同的测试强制执行测试顺序?

  28. 28

    如何在视图上强制执行约束,以确保在MSSQL中返回0行

  29. 29

    如何在for循环中强制执行多个QComboBox中的任何一个的最小索引?

热门标签

归档