2012-02-21 43 views
2

剛剛在課堂上進行了演練,我們的老師給出的示例代碼沒有返回值。我目前的任務有很多麻煩,因爲我沒有看到它有什麼問題。它應該採取由用戶輸入兩個數字,並一起加入他們與稅率一共有,但它仍然返回全0 繼承人什麼代碼如下:Visual Basic老師示例無法正常工作

Public Class Form1 

Private Sub BtnCalc_Click(ByVal sender As System.Object, _ 
ByVal e As System.EventArgs) Handles BtnCalc.Click 

    Dim amount1 As Decimal 
    Dim amount2 As Decimal 
    Dim myinvoice As Invoice 

    myinvoice = New Invoice 

    myinvoice.setlineitemamount(amount1 = Convert.ToDecimal(TextBoxAmt1.Text)) 
    myinvoice.setlineitemamount2(amount2 = Convert.ToDecimal(TextBoxAmt2.Text)) 

    LblTotal.Text = myinvoice.calculateinvoicetotal 

    MessageBox.Show(myinvoice.getlineitemamount2) 

    amount1 = TextBoxAmt1.Text 
    amount2 = TextBoxAmt2.Text 

End Sub 

End Class 

而且繼承人裏面的代碼我的課:

Public Class Invoice 
'created new class for my invoice functions 

Private lineItemamount1 As Decimal 
Private lineItemamount2 As Decimal 
Private lineItemamount3 As Decimal 
Private lineItemamount4 As Decimal 
Private invoiceDate As Date 
Private customer As Integer 
Private invoicetotal As Decimal 
Private invoicetaxrate As Decimal = 0.1 

Public Function getlineitemamount() 
    Return lineItemamount1 
End Function 

Public Sub setlineitemamount(ByVal amount1 As Decimal) 
    lineItemamount1 = amount1 
End Sub 

Public Function getlineitemamount2() 
    Return lineItemamount2 
End Function 

Public Sub setlineitemamount2(ByVal amount2 As Decimal) 
    lineItemamount2 = amount2 
End Sub 

Public Function calculateinvoicetotal() 
    Return (lineItemamount1 + lineItemamount2) * invoicetaxrate 
End Function 

End Class 
+0

不TextBoxAmt1.Text值得的東西,當你使用調試Express版本我不認爲整個調試顯示值 – Marc 2012-02-21 00:42:38

+0

IM,但我用消息框來展示一下他們的價值觀是,無論我進入文本框他們的價值始終保持爲零 – Robert 2012-02-21 00:44:30

+0

如果你做一個messagebox.show(TextBoxAmt1.Text)什麼值 – Marc 2012-02-21 00:47:48

回答

2

你可以試試這個PLZ

amount1 = Convert.ToDecimal(TextBoxAmt1.Text) 
myinvoice.setlineitemamount(amont1) 

而且

Public Function getlineitemamount2() as decimal 

當您需要指定返回值 的類型的函數,但我不知道這是你的問題,但它實在值得一試

+0

並根據需要重複。 :) – 2012-02-21 00:58:28

+0

是的!有效!非常感謝你,我非常感謝你的幫助! – Robert 2012-02-21 00:59:08

+0

「Option Strict On要求所有函數,屬性和運算符聲明具有'As'子句」 - https://msdn.microsoft.com/en-us/library/44h6ck64%28v=vs.90%29.aspx ?f = 255&MSPPError = -2147217396 – 2015-11-12 14:14:21

0

這些線是可能的問題:

myinvoice.setlineitemamount(amount1 = Convert.ToDecimal(TextBoxAmt1.Text)) 
myinvoice.setlineitemamount2(amount2 = Convert.ToDecimal(TextBoxAmt2.Text)) 

它們重寫爲:

myinvoice.setlineitemamount(Convert.ToDecimal(TextBoxAmt1.Text)) 
myinvoice.setlineitemamount2(Convert.ToDecimal(TextBoxAmt2.Text)) 

其原因是(amount1 = Convert.ToDecimal(TextBoxAmt1.Text))是一種在線比較。這將是解決爲真或假...

另外,我建議你打開「選項顯式」

+1

和Option Strict – 2012-02-21 14:30:06

相關問題