尝试将零推送到堆栈时获取空引用异常

时间:2014-05-30 21:35:22

标签: vb.net stack push nullreferenceexception

好吧,我在学校的最后一天试图完成一个程序而且我不能让我的生活超过这个空引用异常。我的代码应该使用一堆整数将用户输入的[count]数字进行平均。它抛出一个空引用异常,因为它试图得到空的堆栈计数,所以我添加了一行来向它推送零。程序现在在该行停止并出现相同的错误(nullreferenceexception)。如果我更改堆栈以接受字符串它工作正常,但我需要它接受整数。感谢任何可以提供帮助的人:)

Module Module1

    Sub Main()
        Dim count As Integer = 16
        Dim stack As New Stack(Of Integer)
        stack.Push(0)
        Console.WriteLine("Please enter " & count & " numbers")
        Do While stack.Count - 1 = count
            stack.Push(Console.ReadLine)
            If Not IsNumeric(stack.Peek) Then
                Console.WriteLine(stack.Pop & " is not a number please try again.")
            End If
        Loop
    End Sub

End Module

1 个答案:

答案 0 :(得分:0)

您正在声明名为stack的变量,但实际上并未创建Stack对象。这样做(使用New关键字):

Dim stack As New Stack(Of Integer)

如果没有New,变量将包含空引用,这就是为什么每当您尝试对该变量执行任何操作时都会获得NullReferenceException