2013-10-28 86 views
1

我想實現一些VB.NET代碼,它從Web窗體獲取信用卡詳細信息並將它們傳遞給付款對象。我已經在另一個頁面上完成了個人詳細信息表單的工作,這很好。通過網絡形式將數據傳遞給對象

然而,在此頁我收到Too many arguments to Public Sub New()錯誤以下行:

Dim cardDetails As Payment = New Payment(Me.CardNumber.Text, Me.CardExpiryMonth.Text, Me.CardExpiryYear.Text) 

這是沒有任何意義的部分。它需要三個參數,我發送了三個參數。真的沒有太多的信息要提供。下面是背後的代碼和付款類。

Payment.vb

Imports Microsoft.VisualBasic 
Public Class Payment 
'declare variables, private 
Private cardNo As String 
Private expiryMth As String 
Private expiryYr As String 

''get and set for each variable 
Private Property cardNumber() As String 
    Get 
     Return cardNo 
    End Get 
    Set(value As String) 
     cardNo = value 
    End Set 
End Property 
Private Property expiryMonth() As String 
    Get 
     Return expiryMth 
    End Get 
    Set(value As String) 
     expiryMth = value 
    End Set 
End Property 
Private Property expiryYear() As String 
    Get 
     Return expiryYr 
    End Get 
    Set(value As String) 
     expiryYr = value 
    End Set 
End Property 

'no argument constructor 
Public Sub New() 
End Sub 

''sub methods/functions do stuff and return values 
Public Overrides Function ToString() As String 
    Return cardNo 
End Function 
Public Sub New(ByVal cardNumber As String, ByVal expiryMonth As String, ByVal expiryYear As String) 
End Sub 
End Class 

而在Payment.aspx.vb我:

Protected Sub Submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Submit.Click 
'add the card details from the form to the object. 
Dim cardDetails As Payment = New Payment(Me.CardNumber.Text, Me.CardExpiryMonth.Text, Me.CardExpiryYear.Text) 
+0

感謝Markus,不幸的是,這並沒有解決問題。原來的帖子已被編輯,以添加儘可能多的信息,因爲我有。 – gem

回答

0

正如我懷疑......一些不那麼明顯但很簡單的東西。我的網站包含Payment.aspx,其中包含帶有部分支付類的Payment.aspx.vb後面的代碼。這造成了我在創建對象時所指的付款方面的困惑。

要解決我複製從Payment.vb我的代碼到一個名爲Card.vb新類,並改變創建對象時的參考:重建解決方案Dim cardDetails As **Card**= New **Card**(Me.CardNumber.Text, Me.CardExpiryMonth.Text, Me.CardExpiryYear.Text)

和錯誤消失。

1

你的構造應該是:

Public Sub New(ByVal cardNumber As String, ByVal expiryMonth As String, ByVal expiryYear As String) 
    Me.cardNumber = cardNumber 
    Me.expiryMonth = expiryMonth 
    Me.expiryYear = expiryYear 
End Sub 

如果問題是另一回事,請提供更多一些細節。

相關問題