2015-11-15 2 views
-1

Мне нужно использовать функцию для моего задания, но я не уверен, как она должна выглядеть. Это то, что у меня есть сейчас ... Помогите написать строку, объявленная функцией в vb, говорит, что это неправильно.Использование функции в подсказке Калькулятор

Dim BillTotal, TipAmount, PerPerson, TipDecimal, Total As Double 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 



    MsgBox("Tip Amount: " & TipAmount & Chr(13) & "Per Person: " & PerPerson & Chr(13) & "Total: " & Total & Chr(13)) 

End Sub 


Function Total(ByVal BillTotal As Double) As Double 
    BillTotal = mtbBill.Text 
    TipAmount = (mtbTip.Text/100) * BillTotal 
    TipDecimal = (mtbTip.Text/100) 
    PerPerson = ((BillTotal * (1 + TipDecimal))/mtbSharedBy.Text) 
    Total = BillTotal * (1 + TipDecimal) 
End Function 
+0

У вас есть вопросы? Это работает? Включите опцию Strict. Всегда – Plutonix

+0

«Помогите написать строку, которую функция объявила в vb, говорит о ее неправильном». Это бессмысленная строка слов. Если ваша IDE сообщает вам, что есть ошибка, и вам нужна помощь, сообщите нам ТОЧНО, где произошла ошибка, и ТОЧНО, что такое сообщение об ошибке. – jmcilhinney

ответ

1
  1. Заменено Chr (13) с vbNewLine - намного более читаемым
  2. Добавлена ​​String.Format лучше форматировать текст в MessageBox. делает его гораздо более удобным для чтения
  3. Модифицированный вашу общую функцию, чтобы не принимать никаких параметров, так как это возвращаемое значение только вычисление значений из элементов пользовательского интерфейса



Dim BillTotal, TipAmount, PerPerson, TipDecimal, Total As Double

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 


MsgBox(String.Format("Tip Amount: {0}{1} per person{2}{1} Total:{3}{1}", TipAmount, vbNewLine, PerPerson,Total())) 
    ' Here I replaced the code with String.Format making it easier to read. 
    ' You specify {0}, {1}, {2}, {n} where the number is the order of the parameter. 
    ' Then at the end of your string you specify the parameter name such as TipAmount, vbNewLine(which is essentially Chr(13), PerPerson, and Total 

End Sub 


Function Total() As Double ' Removed the parameter passed into the function as it's not required. 
    BillTotal = mtbBill.Text 
    TipAmount = (mtbTip.Text/100) * BillTotal 
    TipDecimal = (mtbTip.Text/100) 
    PerPerson = ((BillTotal * (1 + TipDecimal))/mtbSharedBy.Text) 
    Return(BillTotal * (1 + TipDecimal)) 
End Function 
+0

Вам нужно включить опцию Strict, а также – Plutonix

+1

Опция Strict? По какой причине? –

+1

Неплохая практика, когда опция Strict отключена. Всевозможные ошибки можно скрыть, отключив его. –

Смежные вопросы