我使用Visual Basic 2010年,我不断收到此错误消息(重载决策失败,因为没有可访问的“新”接受此数目的参数。)当我尝试宣告我的产品。我不知道我做错了什么。请帮忙。
Dim Counter As Integer = 0
Private arrayProducts(9) As Products.Products.Products
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
If Counter < 10 Then
Dim myProduct As New Products.Products.Products(arrayProducts(Counter + 1),
CDec(txtItemNumber.Text), txtName.Text,
txtManufacturer.Text, CDbl(txtWholeSalePrice.Text), CInt(txtQuantity.Text))
arrayProducts(Counter) = myProduct
MessageBox.Show("Product is added to inventory.")
Counter += 1
Else
MessageBox.Show("Sorry, inventory is full.")
End If
End Sub
这段代码:
Dim myProduct As New Products.Products.Products(arrayProducts(Counter + 1),
CDec(txtItemNumber.Text),
txtName.Text,
txtManufacturer.Text,
CDbl(txtWholeSalePrice.Text),
CInt(txtQuantity.Text))
意味着您必须有一个ctor(Sub New),它需要6个参数,大概是这样的:
Sub New(Index As Integer, ProdCode As String, ProdName As String,
ManufacturerName As String, Price as Double, Quantity As Integer)
错误是说它找不到该构造函数(即,许多参数,但类型也必须按该顺序排列{Int32, String, String, String, Double, Integer}
)。有这么多的参数,也许您有一个太多-或很难想象-一个太少。IntelliSence应该弹出实际的;您键入时的arg列表。
您可能会发现它List
比老式阵列更容易使用:
Friend ProdList As New List(Of Products.Products.Products)
....
Dim p As New Products.Products.Products(...<long arg list> )
ProdList.Add(p)
...
TextBox.Text = ProdList(DesiredProd).ProductName
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句