Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重载解析失败vb.net_Vb.net_Overloading - Fatal编程技术网

重载解析失败vb.net

重载解析失败vb.net,vb.net,overloading,Vb.net,Overloading,我使用的是Visual Basic 2010,当我尝试声明myProducts时,不断收到此错误消息(重载解析失败,因为没有可访问的“New”接受此数量的参数。)。我不知道我做错了什么。请帮忙 Dim Counter As Integer = 0 Private arrayProducts(9) As Products.Products.Products Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As Sy

我使用的是Visual Basic 2010,当我尝试声明myProducts时,不断收到此错误消息(重载解析失败,因为没有可访问的“New”接受此数量的参数。)。我不知道我做错了什么。请帮忙

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计数器为整数=0
专用阵列产品(9)作为产品。产品。产品
私有子btnAdd_Click(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理btnAdd。单击
如果计数器<10,则
Dim myProduct作为新产品。产品。产品(阵列产品(计数器+1),
CDec(txtItemNumber.Text)、txtName.Text、,
txtmacturer.Text,CDbl(txtworgansaleprice.Text),CInt(txtQuantity.Text))
arrayProducts(计数器)=myProduct
Show(“产品已添加到库存。”)
计数器+=1
其他的
MessageBox.Show(“对不起,库存已满。”)
如果结束
端接头
这段代码:

   Dim myProduct As New Products.Products.Products(arrayProducts(Counter + 1),
                                                    CDec(txtItemNumber.Text),
                                                     txtName.Text,
                                                    txtManufacturer.Text,
                                                    CDbl(txtWholeSalePrice.Text),
                                                    CInt(txtQuantity.Text))
这意味着您必须有一个接受6个参数的ctor(Sub-New),可能是这样的:

 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}
)。有这么多的arg,可能你有一个太多-或者很难想象-一个太少。智能应该出现在现实中;输入时输入arg列表

您可能会发现
列表
比老式阵列更易于使用:

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
Friend ProdList作为新列表(产品.产品.产品)
....
DIMP作为新产品。产品。产品(…)
ProdList.Add(p)
...
TextBox.Text=ProdList(DesiredProd).ProductName

不,我肯定在您的代码中看到了新的内容。我看不到Products类,但我100%确定它没有包含包含6个参数的
Sub-New
。编译器是这么说的。请向您展示Products.Products.Products类。请不要将其进一步扩展为Products.Products.Products.Products等。我的产品类中确实有Sub New()。您需要一个Sub New,它包含您正在传递的六个参数…谢谢,我将尝试它。