【发布时间】:2021-08-29 15:40:44
【问题描述】:
所以我试图在一个类中添加 Textbox.Text 但它给了我一个错误非共享成员引用。
我的代码:
Public Class Produtos
Public Property demonstracao As String
Public Property none As String
Public Property percentagem As String
Public Property valor As Decimal
Public Sub New(demonstracao As String, none As String, percentagem As String, valor As Decimal)
Me.demonstracao = demonstracao
Me.none = none
Me.percentagem = percentagem
Me.valor = valor
End Sub
Public Shared Function GetListaProdutos() As List(Of Produtos)
' instanciar um objeto Lista de produtos
Dim relProdutos As New List(Of Produtos)
With relProdutos
.Add(New Produtos(Textbox1.text, textbox2.text, textbox3.text, textbox4.text))
End With
GetListaProdutos = relProdutos
End Function
End Class
给我错误对非共享成员的引用需要对象引用。每当我放置 Textbox.Text 时
有什么线索吗?
编辑: 我用来将项目添加到单元格的代码。
For Each produto In listaProdutos
'demontracao
tabela.AddCell(New Cell().SetTextAlignment(TextAlignment.CENTER).Add(New Paragraph(produto.demonstracao)))
'none
tabela.AddCell(New Cell().SetTextAlignment(TextAlignment.CENTER).Add(New Paragraph(produto.none)))
'percentagem
tabela.AddCell(New Cell().SetTextAlignment(TextAlignment.CENTER).Add(New Paragraph(produto.percentagem)))
'valor
tabela.AddCell(New Cell().SetTextAlignment(TextAlignment.CENTER).Add(New Paragraph(produto.valor)))
Next
【问题讨论】:
-
您的 TextBox 引用是不同类的实例成员,
GetListaProdutos()是静态 (Shared) 方法。您的Produtos类如何在不引用此类的情况下知道或访问另一个类的实例成员?该方法每次也返回一个新列表。你确定这是你需要的吗? + 不要写这个东西:GetListaProdutos = relProdutos,写Return relProdutos。 -
@Jimi 再次感谢您的意见。我已经编辑了主要问题,显示了我必须将项目添加到单元格的代码。我认为它只会插入第一行“.Add(New Produtos(Textbox1.text, textbox2.text, textbox3.text, textbox4.text))”而不是更多。让我知道我是否错了以及如何修复参考错误。
-
好吧,您可以将 TextBoxes
Text值传递给您的Produtos类的构造函数并使用这些值设置其属性,然后在GetListaProdutos()中返回类属性,这当然是不得声明为Shared。假设您的类的实例是在包含这些文本框的类中创建的。 -- 注意-这很重要-您正在尝试直接从字符串值生成 Decimal 值。为了您自己的理智,请将 Option Strict 设置为ON。 -
@Jimi 任何关于我该怎么做的线索,伙计?谢谢
-
我想我刚才已经描述过了。