【发布时间】:2013-03-31 04:25:54
【问题描述】:
我正在和我的朋友一起完成一项任务。我就如何进行循环寻求帮助,他给了我那部分的代码。所以我复制并粘贴到vb中。它适用于他,但每次我尝试调试它时,我都会收到“未处理空异常”的标志。但它不仅仅是一条线。拳头它从 LstInvoice.items.clear() 开始,但如果我删除它,它会遍历所有行。到底是怎么回事?我之前在其他任务中使用过 LstInvoice.items.clear() 并且以前从未遇到过这个问题。这是我的代码:
Private Sub btnStraight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStraight.Click
Dim Cost As Double
Cost = txtCost.Text
Dim Salvage_Value As Double
Salvage_Value = 0
Dim Life As Double
Life = txtLife.Text
Dim Depreciation As Double
Depreciation = (Cost / Life)
Dim c As Integer, i As Integer, x As Integer, y As Integer, z As Integer
c = CInt(CDbl(txtYear.Text))
i = CInt(txtLife.Text)
x = CInt(txtCost.Text)
y = CInt(CDbl(x) / i)
z = x - y
LstInvoice.items.clear()
LstInvoice.Items.Add("Description: " & "" & txtDescription.Text)
LstInvoice.Items.Add("Year of purchase: " & txtYear.Text)
LstInvoice.Items.Add("Cost: " & FormatCurrency(txtCost.Text))
LstInvoice.Items.Add("Estimated life:" & txtLife.Text)
LstInvoice.Items.Add("Method of Depresciation: straight-line method")
LstInvoice.Items.Add("")
LstInvoice.Items.Add("Value beginning of " & c & ": " & FormatCurrency(CInt(txtCost.Text)))
LstInvoice.Items.Add("Amount of depreciation accruing: " & c & ": " & FormatCurrency(y))
LstInvoice.Items.Add("Total depreaciation at end of " & c & ": " & FormatCurrency(z))
LstInvoice.Items.Add("")
c = c + 1
Do While (x > 0)
y = CInt(CDbl(x) / i)
z = x - y
x = z
LstInvoice.Items.Add("Value beginning of " & c & ": " & FormatCurrency(x))
LstInvoice.Items.Add("Amount of depreciation accruing: " & c & ": " & FormatCurrency(y))
LstInvoice.Items.Add("Total depreaciation at end of " & c & ": " & FormatCurrency(z))
LstInvoice.Items.Add("")
i = i - 1
c = c + 1
Loop
【问题讨论】:
-
我假设
LstInvoice应该是一个显示发票的列表框控件。您是否有这样的控件,该控件已添加到您的表单中?否则,它将为 null,因为不存在这样的对象。 -
底部有这个,只是它添加了一条抛出线,调试系统让我摆脱了 Private Function LstInvoice() As Object End Function End Class
-
您正在删除您需要的代码。不要那样做。如果你得到一个空引用异常,你必须调试代码;阅读this。
-
除了其他响应之外,将 Option Strict On 放在代码顶部或进入项目属性并设置 Option Strict On。并将其设为所有新项目的默认设置。它会为您省去很多麻烦。
标签: .net vb.net nullreferenceexception