2017-11-28 29 views
0

エラーがBC42353です(関数ValidateInputFieldsはすべてのコードパスで値を返しません。Returnステートメントがありませんか?)このエラーは2回発生しています。私はエラーが表示されている行に感嘆符を付けます。ビジュアル基本的な結果がラベルに表示されないエラーBC42353

Public Class Form1 
    Private decWholesaleCost As Decimal 
    Private decMarkuppercent As Decimal 


    Private Function ValidateInputFields() As Boolean 
     If Not Decimal.TryParse(txtWholesale.Text, decWholesaleCost) Then 
      lblMessage.Text = "The wholesale cost must be numeric" 
      Return False 
     End If 

     If Not Decimal.TryParse(txtMarkup.Text, decMarkuppercent) Then 
      lblMessage.Text = "Markup percentage must be numeric" 
      Return False 
     End If 
! End Function 

    Function CalculateRetailPrice(ByVal decWholesaleCost As Decimal, 
          ByVal decMarkupPercent As Decimal) As Decimal 
     Dim decRetailPrice As Decimal 
     decRetailPrice = decWholesaleCost + (decWholesaleCost * decMarkupPercent) 
!  End Function 

    Private Sub BtnGetRetail_Click(sender As Object, e As EventArgs) Handles btnGetRetail.Click 
     Dim decRetailPrice As Decimal 
     lblMessage.Text = String.Empty 

     If ValidateInputFields() Then 
      decRetailPrice = CalculateRetailPrice(decRetailPrice, decMarkuppercent) 
      lblRetail.Text = decRetailPrice.ToString("c") 

     End If 
    End Sub 

    Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click 
     Me.Close() 
    End Sub 
End Class 

答えて

1

コードには値が返されません。

Private Function ValidateInputFields() As Boolean 
    If Not Decimal.TryParse(txtWholesale.Text, decWholesaleCost) Then 
     lblMessage.Text = "The wholesale cost must be numeric" 
     Return False 
    End If 

    If Not Decimal.TryParse(txtMarkup.Text, decMarkuppercent) Then 
     lblMessage.Text = "Markup percentage must be numeric" 
     Return False 
    End If 
    Return True '--need to add this line 
End Function 

void型ではない.NETでメソッドを記述する場合は、値を返す必要があります。あなたのコードは値を返しません。そのため、コンパイラはエラーを起こしています。

Private Function ValidateInputFields() As Boolean 
     If Not Decimal.TryParse(txtWholesale.Text, decWholesaleCost) Then 
      lblMessage.Text = "The wholesale cost must be numeric" 
      Return False 
     End If 

     If Not Decimal.TryParse(txtMarkup.Text, decMarkuppercent) Then 
      lblMessage.Text = "Markup percentage must be numeric" 
      Return False 
     End If 
    --there is no return value from function when above if condition fails 
    End Function 

最後にReturn Trueを追加してください。あなたの問題を解決するはずです。

+1

同様に、2番目の関数は値を返す必要があります。行を追加する返すdecRetailPrice – Mary

+2

問題があるときにコードが 'False'を返すように表示するので、デフォルトの戻り値が' True'であると思われます。 –

関連する問題