Der Operator * ist nicht definiert

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Der Operator * ist nicht definiert

    Seid gegrüßt,

    wir müssen für das Fach Wirtschaftsinformatik ein eigenes Programm in Visual Basic 2015 schreiben. Mit Büchern und den Sachen aus dem Unterricht bin ich für einen Anfänger relativ weit gekommen.

    Ich kann das Programm ohne Probleme starten. Wenn ich allerdings den Preis für die ausgewählten Artikel ausrechnen will stürzt das Programm ab und es kommt diese Meldung:

    Ein Ausnahmefehler des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.
    Zusätzliche Informationen: Der Operator * ist für Zeichenfolge 2 und Typ TextBox nicht definiert.

    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Public Class Form1
    2. Public Structure Kunde ' Wir erstellen eine neue Struktur. Damit fassen wir Variablen unterschiedlichen Datentyps zusammen, die sachlich zusammen gehören.
    3. Public Kundennummer As Integer 'Die Kundennummer ist eine ganze Zahl
    4. Public Name As String ' Ist eine Zeichenkette mit variabler Länge
    5. Public Vorname As String
    6. End Structure
    7. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'Programmstart
    8. Dim philip, francis, matthias, michelle As Kunde 'wir legen zum Programmstart 4 Variablen an
    9. philip.Kundennummer = 1
    10. philip.Name = "Meier"
    11. philip.Vorname = "Philip"
    12. francis.Kundennummer = 2
    13. francis.Name = "Schubert"
    14. francis.Vorname = "Francis"
    15. matthias.Kundennummer = 3
    16. matthias.Name = "Kuhlen"
    17. matthias.Vorname = "Matthias" 'Eingabe Kundendaten
    18. michelle.Kundennummer = 4
    19. michelle.Name = "Schmidt"
    20. michelle.Vorname = "Michelle"
    21. Kundenliste(1) = philip 'variable 1=philip ist die Kundennummer 1 für Philip Meier usw.
    22. Kundenliste(2) = francis
    23. Kundenliste(3) = matthias
    24. Kundenliste(4) = michelle
    25. End Sub
    26. Public Function AnzeigeEinzelpreis(ByVal Auswahl, ByRef Preis)
    27. If Auswahl = "Schuhe" Then
    28. Preis = 39.99
    29. ElseIf Auswahl = "Hemd" Then
    30. Preis = 17.99
    31. ElseIf Auswahl = "Handtasche" Then
    32. Preis = 24.99
    33. End If
    34. Return True
    35. End Function
    36. Public Function Preiskalkulation(ByVal Anzahl, ByVal Einzelpreis, ByRef Preis)
    37. If Anzahl <> "" Then
    38. Preis = Anzahl * Einzelpreis
    39. End If
    40. Return True
    41. End Function
    42. Private Sub ButtonEndpreis_Click(sender As Object, e As EventArgs) Handles ButtonEndpreis.Click
    43. Const USt As Double = 0.19
    44. Dim Preis1, Preis2, Preis3, Summe, Steuer, Endpreis As Double
    45. If tb_Auswahl1_Preis.Text <> "" Then
    46. Preis1 = CDbl(tb_Auswahl1_Preis.Text)
    47. Else
    48. Preis1 = 0.00
    49. End If
    50. If tb_Auswahl2_Preis.Text <> "" Then
    51. Preis2 = CDbl(tb_Auswahl2_Preis.Text)
    52. Else
    53. Preis2 = 0.00
    54. End If
    55. If tb_Auswahl3_Preis.Text <> "" Then
    56. Preis3 = CDbl(tb_Auswahl3_Preis.Text)
    57. Else
    58. Preis3 = 0.00
    59. End If
    60. Summe = Preis1 + Preis2 + Preis3
    61. Steuer = Summe * USt
    62. Endpreis = Summe + Steuer
    63. tb_SummePreise.Text = Summe.ToString
    64. tb_Umsatzsteuer.Text = Steuer.ToString
    65. tb_Endpreis.Text = Endpreis.ToString
    66. End Sub
    67. End Class


    Er zeigt mir als Fehler die Reihe 41 an, aber wenn er dort schon meckert, dann wird er sicherlich auch bei Reihe 67 meckern. Das ist nicht der gesamte Code. Ich habe das raus gelassen was meiner Meinung nach unwichtig ist, bei Bedarf lade ich gerne noch den Rest hoch. Ich habe jetzt mehrere Stunden das Internet durchsucht, aber wirklich schlauer bin ich nicht geworden. Eventuell hat hier jemand eine Idee.

    Gruß Paldaos
    @Paldaos Willkommen im Forum. :thumbup:
    Gib Deinem Code Option Strict On :!:
    Visual Studio - Empfohlene Einstellungen
    Berichtige alle Typ-Fehler und dann sehen wir weiter.
    Und:
    er erste Index eines Arrays ist bei .NET 0.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!