2017-03-31 13 views
-2

私はVIsual Studio 2015を使用して学校プロジェクトに取り掛かりました。割り当ては、輸送モードの3つのオプションでGUI「通勤電卓」を作成することです。私は私の教科書の指示に従うが、次のエラーを取得していたコードを書いてきました:小数点から整数への変換エラー

"BC30057 Too many arguments to 'Private Function CarFindCost(intCommuteChoice As Integer, intDays As Integer) As Decimal'."

私が対に初心者だけど、私は、問題は、私は変数を宣言した方法であると信じてエラーに基づきます。整数を10進数に変換する方法を探ったが、うまく機能していない。コードは長いですが、すべてFYIとして含めました。エラーはプライベートサブbtnCommuteにあり、CarFindCost、BusFindCost、およびTrainFindCostの3つのプライベート関数に関連付けられているようです。どのように私はそれを修正する私privateサブbthCommuteの変数intLengthにエラーを取得しないでください? ;

case
Select Case intCommuteChoice ... End Select 

:で

Option Strict On 

Public Class frmCommuteCalc 
    Dim intCommuteChoice As Integer 
    Dim strSelectedMode As String = "" 
    Private _strGas As Integer 
    Private _strMiles As String = "Enter the total miles for a round trip: " 
    Private _strMilesPerGallon As Double = 2.15 
    Private _strDailyParking As Decimal = 10 
    Private _strMonthlyParking As Decimal 
    Private _strMonthlyUpkeep As Decimal = 112 
    Private _strRTBusFare As String = "Round trip bus fare is " 
    Private _strRTTrainFare As String = "Round trip train fare is " 
    Private _StrDays As String = "Enter the number of days worked per month: " 
    Private _intTrainFare As Integer 


    Private Sub frmCommuteCalc_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

     Threading.Thread.Sleep(5000) 

    End Sub 

    Private Sub cboCommuteMethod_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboCommuteMethod.SelectedIndexChanged 

     Dim intCommuteChoice As Integer 

     intCommuteChoice = cboCommuteMethod.SelectedIndex() 
     lstCommute.Items.Clear() 

     Select Case intCommuteChoice 
      Case 0 
       Car() 
      Case 1 
       Train() 
      Case 2 
       Bus() 
     End Select 

     lblDays.Visible = True 
     lblMiles.Visible = True 
     lblLength.Visible = True 
     txtDays.Visible = True 
     'txtMonthlyTotal.Visible = True 


    End Sub 

    Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click 

     Dim intCommuteChoice As Integer 
     Dim intDaysPerMonth As Integer 
     Dim decTotalCost As Decimal 
     Dim intLength As Integer = 0 
     Dim strSelectedMode As String = "" 
     Dim blnNumberInDaysIsValid As Boolean = False 
     Dim blnCommuteMethodIsSelected As Boolean = False 

     blnNumberInDaysIsValid = ValidateNumberInDays() 

     intCommuteChoice = ValidateCommuteSelection(blnCommuteMethodIsSelected, strSelectedMode) 

     If (blnNumberInDaysIsValid And blnCommuteMethodIsSelected) Then 
      intDaysPerMonth = Convert.ToInt32(txtDays.Text) 
      intCommuteChoice = cboCommuteMethod.SelectedIndex() 
      Select Case intCommuteChoice 
       Case 0 
        decTotalCost = CarFindCost(intCommuteChoice, intDaysPerMonth, intLength) 
       Case 1 
        decTotalCost = BusFindCost(intCommuteChoice, intDaysPerMonth, intLength) 
       Case 2 
        decTotalCost = TrainFindCost(intCommuteChoice, intDaysPerMonth, intLength) 
      End Select 

     End If 



    End Sub 

    Private Function intLength() As Object 
     Throw New NotImplementedException() 
    End Function 

    Function ComputeCommuteCost(ByVal decMiles As Decimal, ByVal decGallons As Decimal) As Decimal 

     Dim decMilage As Decimal 

     decMilage = decMiles/decGallons 
     Return decMilage 

    End Function 
    Private Sub Car() 

     lstCommute.Items.Add(_strMiles) 
     lstCommute.Items.Add(_strMilesPerGallon) 
     lstCommute.Items.Add(_StrDays) 
     lstCommute.Items.Add(_strMonthlyParking) 
     lstCommute.Items.Add(_strMonthlyUpkeep) 

    End Sub 

    Private Sub Bus() 

     lstCommute.Items.Add(_strRTBusFare) 
     lstCommute.Items.Add(_StrDays) 
    End Sub 

    Private Sub Train() 
     lstCommute.Items.Add(_StrDays) 
     lstCommute.Items.Add(_strRTTrainFare) 

    End Sub 
    Private Function ValidateNumberInDays() As Boolean 

     Dim intDays As Integer 
     Dim blnValidityCheck As Boolean = False 
     Dim strNumberInDaysMessage As String = "Please enter the No. of days per month you will be commuting " 
     Dim strMessageBoxTitle As String = "Error" 

     Try 
      intDays = Convert.ToInt32(txtDays.Text) 
      If intDays >= 1 And intDays <= 21 Then 
       blnValidityCheck = True 
      Else 
       MsgBox(strNumberInDaysMessage, , strMessageBoxTitle) 
       txtDays.Focus() 
       txtDays.Clear() 
      End If 
     Catch Exception As FormatException 
      MsgBox(strNumberInDaysMessage, , strMessageBoxTitle) 
      txtDays.Focus() 
      txtDays.Clear() 
     Catch Exception As OverflowException 
      MsgBox(strNumberInDaysMessage, , strMessageBoxTitle) 
      txtDays.Focus() 
      txtDays.Clear() 
     Catch Exception As SystemException 
      MsgBox(strNumberInDaysMessage, , strMessageBoxTitle) 
      txtDays.Focus() 
      txtDays.Clear() 
     End Try 

     Return blnValidityCheck 

    End Function 

    Private Function ValidateCommuteSelection(ByRef blnDays As Boolean, ByRef strDays As String) As Integer 
     Dim intCommuteChoice As Integer 

     Try 
      intCommuteChoice = Convert.ToInt32(lstCommute.SelectedIndex) 
      strDays = lstCommute.SelectedItem.ToString() 
      blnDays = True 
     Catch Exception As SystemException 
      MsgBox("Select a commute mode", , "Error") 
      blnDays = False 
     End Try 

     Return intCommuteChoice 

    End Function 

    Private Function CarFindCost(ByVal intCommuteChoice As Integer, ByVal intDays As Integer) As Decimal 
     Dim decDaysPerMonth As Decimal 
     Dim decMiles As Decimal 
     Dim decMilesPerGallon As Decimal = 2 
     Dim decGasTotal As Decimal 
     Dim decDailyParking As Decimal = 10 
     Dim decMonthlyParking As Decimal 
     Dim decMonthlyUpkeep As Decimal = 112 
     Dim decFinalCost As Decimal 
     Dim intLength As Integer = 0 

     decMiles = Convert.ToDecimal(txtMiles.Text) 
     decMilesPerGallon = Convert.ToDecimal(txtGallons.Text) 
     decGasTotal = decMilesPerGallon * decMiles 
     decMonthlyParking = Convert.ToDecimal(lblLength.Text) 
     decMonthlyParking = decDailyParking * decDaysPerMonth 
     decFinalCost = Convert.ToDecimal(lblLength.Text) 
     decFinalCost = decGasTotal + decMonthlyUpkeep + decMonthlyParking 

     Return decFinalCost 

    End Function 

    Private Function BusFindCost(ByVal intCommuteChoice As Integer, ByVal intDays As Integer) As Decimal 

     Dim intLength As Integer = 0 
     Dim decDaysPerMonth As Decimal 
     Dim decBusFarePerDay As Decimal = 4 
     Dim decFinalCost As Decimal 

     decBusFarePerDay = Convert.ToDecimal(txtMonthlyTotal) 
     decFinalCost = decBusFarePerDay * decDaysPerMonth 

     Return decFinalCost 

    End Function 

    Private Function TrainFindCost(ByVal intCommuteChoice As Integer, ByVal intDays As Integer) As Decimal 

     Dim intLength As Integer = 0 
     Dim decDaysPerMonth As Decimal 
     Dim decTrainFarePerDay As Decimal = 18 
     Dim decFinalCost As Decimal 

     decTrainFarePerDay = Convert.ToDecimal(txtMonthlyTotal) 
     decFinalCost = Convert.ToDecimal(txtMonthlyTotal) 
     decFinalCost = decDaysPerMonth * decTrainFarePerDay 

     Return decFinalCost 

    End Function 
End Class 
+3

あなたは215行のコードを投稿しました。あなたは1でコンパイラエラーを取得しています。そして、それは10進数を整数に変換するエラーではありません。 – abatishchev

+3

あなたは3つの引数を渡しています( 'intLength'は3番目です)。 – Ryan

+0

@abatishchev。あなたが何か助けになることがないならば、なぜコメントしても大丈夫ですか?私はこれを初めて知り、助けを求めて、少しの思いやりが批判の代わりにいいだろう。スタックオーバーフローにこのオプションがある場合は、私をブロックしてください。 – lorac1969

答えて

1

CarFindCostを呼び出し、3つのパラメータyを宣言しました。

+0

こんにちはロベルト、私は正しい方向に向いてくれてありがとう。あなたが知っているよりもはるかに優れていることを知っている技術者を扱うことを脅かす可能性があるので、もう一度感謝します。 – lorac1969

+0

@ lorac1969これがあなたの質問に答えた場合、**アップしてください**この回答を受け入れてください。それがあなたの問題を解決しなかったが、それが役に立つと分かった場合は、**アップvote **の答えをしてください。 – Yatrix

関連する問題