fork download
  1. Public Class formCalculator
  2.  
  3. Dim operationsArray As Array = {"add", "subtract", "multiply", "divide"}
  4. Dim cachedOperation As String = ""
  5. Dim cachedNumber As String = ""
  6. Dim isAllowedToEnter As Boolean = True
  7. Dim isEqualClicked As Boolean = False
  8.  
  9. Private Sub displayNumber(number As String)
  10. If isAllowedToEnter = False Then
  11. txtAnswer.Clear()
  12. isAllowedToEnter = True
  13. End If
  14. txtAnswer.AppendText(number)
  15. isEqualClicked = False
  16. End Sub
  17.  
  18. Private Sub cachedValues(operation As String)
  19. If isEqualClicked = False Then
  20. If cachedOperation.Length >= 1 Then
  21. 'MsgBox("a")
  22. performOperation()
  23. Else
  24. 'MsgBox("aa")
  25. cachedNumber = txtAnswer.Text
  26. End If
  27. End If
  28. isEqualClicked = False
  29. cachedOperation = operation
  30. isAllowedToEnter = False
  31.  
  32. End Sub
  33.  
  34. Private Sub performOperation()
  35. If cachedOperation = operationsArray(0) Then
  36. txtAnswer.Text = Val(cachedNumber) + Val(txtAnswer.Text)
  37. ElseIf cachedOperation = operationsArray(1) Then
  38. txtAnswer.Text = Val(cachedNumber) - Val(txtAnswer.Text)
  39. ElseIf cachedOperation = operationsArray(2) Then
  40. txtAnswer.Text = Val(cachedNumber) * Val(txtAnswer.Text)
  41. ElseIf cachedOperation = operationsArray(3) Then
  42. If txtAnswer.Text.Equals("0") Then
  43. MsgBox("Cannot divide by zero!")
  44. Else
  45. txtAnswer.Text = Val(cachedNumber) / Val(txtAnswer.Text)
  46. End If
  47. End If
  48. cachedNumber = txtAnswer.Text
  49. End Sub
  50.  
  51. Private Sub btn1_Click(sender As System.Object, e As System.EventArgs) Handles btn1.Click
  52. displayNumber(btn1.Text)
  53. End Sub
  54.  
  55. Private Sub btn2_Click(sender As System.Object, e As System.EventArgs) Handles btn2.Click
  56. displayNumber(btn2.Text)
  57. End Sub
  58.  
  59. Private Sub btn3_Click(sender As System.Object, e As System.EventArgs) Handles btn3.Click
  60. displayNumber(btn3.Text)
  61. End Sub
  62.  
  63. Private Sub btn4_Click(sender As System.Object, e As System.EventArgs) Handles btn4.Click
  64. displayNumber(btn4.Text)
  65. End Sub
  66.  
  67. Private Sub btn5_Click(sender As System.Object, e As System.EventArgs) Handles btn5.Click
  68. displayNumber(btn5.Text)
  69. End Sub
  70.  
  71. Private Sub btn6_Click(sender As System.Object, e As System.EventArgs) Handles btn6.Click
  72. displayNumber(btn6.Text)
  73. End Sub
  74.  
  75. Private Sub btn7_Click(sender As System.Object, e As System.EventArgs) Handles btn7.Click
  76. displayNumber(btn7.Text)
  77. End Sub
  78.  
  79. Private Sub btn8_Click(sender As System.Object, e As System.EventArgs) Handles btn8.Click
  80. displayNumber(btn8.Text)
  81. End Sub
  82.  
  83. Private Sub btn9_Click(sender As System.Object, e As System.EventArgs) Handles btn9.Click
  84. displayNumber(btn9.Text)
  85. End Sub
  86.  
  87. Private Sub btnDot_Click(sender As System.Object, e As System.EventArgs) Handles btnDot.Click
  88. If txtAnswer.Text.Contains(".") = False Then
  89. If txtAnswer.Text.Length <= 0 Then
  90. txtAnswer.Text = "0."
  91. Else
  92. displayNumber(btnDot.Text)
  93. End If
  94. End If
  95. End Sub
  96.  
  97. Private Sub btn0_Click(sender As System.Object, e As System.EventArgs) Handles btn0.Click
  98. displayNumber(btn1.Text)
  99. End Sub
  100.  
  101. Private Sub btnAdd_Click(sender As System.Object, e As System.EventArgs) Handles btnAdd.Click
  102. cachedValues(operationsArray(0))
  103. End Sub
  104.  
  105. Private Sub btnMinus_Click(sender As System.Object, e As System.EventArgs) Handles btnMinus.Click
  106. cachedValues(operationsArray(1))
  107. End Sub
  108.  
  109. Private Sub btnMultiply_Click(sender As System.Object, e As System.EventArgs) Handles btnMultiply.Click
  110. cachedValues(operationsArray(2))
  111. End Sub
  112.  
  113. Private Sub btnDivide_Click(sender As System.Object, e As System.EventArgs) Handles btnDivide.Click
  114. cachedValues(operationsArray(3))
  115. End Sub
  116.  
  117. Private Sub btnEquals_Click(sender As System.Object, e As System.EventArgs) Handles btnEquals.Click
  118. isEqualClicked = True
  119. performOperation()
  120. End Sub
  121.  
  122. Private Sub btnClear_Click(sender As System.Object, e As System.EventArgs) Handles btnClear.Click
  123. txtAnswer.Clear()
  124. End Sub
  125.  
  126. Private Sub formCalculator_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  127. txtAnswer.BackColor = Color.White
  128. txtAnswer.ForeColor = Color.Black
  129. End Sub
  130. End Class
  131.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Visual Basic.Net Compiler version 0.0.0.5943 (Mono 3.8 - tarball)
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.

vbnc : Command line : error VBNC99999: Unexpected error: There has been an internal error in the compiler.
  at vbnc.CecilHelper.GetElementType (Mono.Cecil.TypeReference Type) [0x00000] in <filename unknown>:0 
  at vbnc.ArrayElementInitializer.ResolveCode (vbnc.ResolveInfo Info) [0x00000] in <filename unknown>:0 
  at vbnc.VariableInitializer.ResolveCode (vbnc.ResolveInfo Info) [0x00000] in <filename unknown>:0 
  at vbnc.VariableDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00000] in <filename unknown>:0 
  at vbnc.BaseObjects`1[vbnc.IMember].ResolveCode (vbnc.ResolveInfo Info) [0x00000] in <filename unknown>:0 
  at vbnc.TypeDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00000] in <filename unknown>:0 
  at vbnc.ClassDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00000] in <filename unknown>:0 
  at vbnc.AssemblyDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00000] in <filename unknown>:0 
  at vbnc.Compiler.Compile_Resolve () [0x00000] in <filename unknown>:0 
  at vbnc.Compiler.Compile () [0x00000] in <filename unknown>:0 
Compilation took 00:00:00.8511390
stdout
Standard output is empty