【问题标题】:I can't insert values to a list of struct [duplicate]我无法将值插入结构列表 [重复]
【发布时间】:2018-11-28 08:15:08
【问题描述】:

我想做一个具有许多属性的产品列表,例如价格、名称、id 等。

我制作了一个模块并创建了一个结构产品,然后我制作了一个包含所有产品的列表。

添加按钮应该将文本字段中的值添加到列表中,但它不起作用。收到错误:

“'System.NullReferenceException' 类型的未处理异常 发生在 RFID.exe"

我在这一行得到错误:

Module1.newProduct.Add(product)

这是显示如何完成的代码,请帮助找出错误。

在模块 1 中:

Public newProduct As List(Of product)



Structure product
    Public productID As Integer
    Public productName As String
    Public Category As String
    Public releaseDate As Date
    Public price As Double
    Public quantity As Integer
End Structure

在主窗体中,在添加按钮中:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If TxtPID.Text <> "" Then

        Dim product As Module1.product
        product.productID = Convert.ToInt32(TxtPID.Text)
        product.productName = TxtPName.Text
        product.Category = LCategory.Text
        product.releaseDate = TxtRDate.Text
        product.price = Convert.ToDouble(TxtPrice.Text)
        product.quantity = Convert.ToInt32(TxtQuantity.Text)
        Module1.newProduct.Add(product)
        MsgBox("Product has been added.")
    Else
        MsgBox("Enter Product ID!")
    End If

End Sub

【问题讨论】:

  • 你为什么不使用类?您的 Product 显然是其中之一。
  • 我不知道产品的数量,应该是用户添加的。类在这种情况下有效吗?如何?我知道如何创建一个类以及如何创建对象,但我不知道它如何与尽可能多的用户输入一起工作。 @Rango
  • 当然,类作为结构工作。区别在于结构是值类型,而类是引用类型。将结构用于小型(很少属性)和可测量/可计算的类型。默认使用类

标签: vb.net list struct


【解决方案1】:

您需要为您的对象创建一个新实例newProduct

Public newProduct As New List(Of product)

【讨论】:

  • 请解释更多。
  • 在您使用 New 运算符创建此对象的新实例之前,您的对象 newProduct 不存在。您只声明了它,但尚未创建对象。这就是您收到 NullReferenceException 错误的原因。
  • 谢谢亲爱的,它现在正在工作! @equisde
猜你喜欢
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多