Hallo!
Ich bin neu hier und würde mich mit einer kurzen Problemstellung gerne an euch richten. Ich bin echt kein Programmier-Profi, aber muss es für mein Studium zumindest ansatzweise können. Nun zu meinem Problem: Ich muss eine Aufgabe von meiner Professorin lösen und dies ist mir auch fast vollständig gelungen, nur hänge ich jetzt an einem kleinen aber entscheidendem Punkt. Ich habe vor die Variable x (siehe Quellcode) in der Klasse Form1 zu erstellen. Diese soll dann durch den Sub einer anderen Klasse aufgerufen werden und (wichtig!) geändert werden. Ich will danach mit dem veränderten Wert der Variable in Form1 weiterarbeiten. Leider lässt die Aufgabenstellung keine Abweichung von den Klassen oder des Subs (z.B stattdessen Function) zu.
Obwohl ich die Variable per Referenz in dem Sub aufrufe, wird sie einfach nicht geändert. Geht das generell nicht klassenübergreifend oder ist mir ein Fehler unterlaufen?
Ich kann mir denken, dass die Antwort vermutlich recht simpel ist, aber dennoch wäre ich über jede Hilfe froh!
Vielen Dank!
manu123
Hier der Code (Auszugsweise):
Ich bin neu hier und würde mich mit einer kurzen Problemstellung gerne an euch richten. Ich bin echt kein Programmier-Profi, aber muss es für mein Studium zumindest ansatzweise können. Nun zu meinem Problem: Ich muss eine Aufgabe von meiner Professorin lösen und dies ist mir auch fast vollständig gelungen, nur hänge ich jetzt an einem kleinen aber entscheidendem Punkt. Ich habe vor die Variable x (siehe Quellcode) in der Klasse Form1 zu erstellen. Diese soll dann durch den Sub einer anderen Klasse aufgerufen werden und (wichtig!) geändert werden. Ich will danach mit dem veränderten Wert der Variable in Form1 weiterarbeiten. Leider lässt die Aufgabenstellung keine Abweichung von den Klassen oder des Subs (z.B stattdessen Function) zu.
Obwohl ich die Variable per Referenz in dem Sub aufrufe, wird sie einfach nicht geändert. Geht das generell nicht klassenübergreifend oder ist mir ein Fehler unterlaufen?
Ich kann mir denken, dass die Antwort vermutlich recht simpel ist, aber dennoch wäre ich über jede Hilfe froh!
Vielen Dank!
manu123
Hier der Code (Auszugsweise):
VB.NET-Quellcode
- Public Class Form1
- Dim A1 As New Getränkedosenautomat
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim x As String
- x = InputBox("Anzahl Dosen = ?", "Dosen hinzufügen")
- If IsNumeric(x) Then
- A1.Bestücken(CInt(x))
- MsgBox("Die Bestückung war erfolgreich!",, "Bestücken")
- If A1.AktuellerStand = 100 Then
- MsgBox("Der Automat ist jetzt voll!", vbCritical)
- End If
- If CInt(x) > 0 Then
- MsgBox("Es konnten leider nur " & x & " Dose(n) bestückt werden, da der Automat jetzt voll ist!",, "Bestücken")
- End If
- Else
- MsgBox("Es wurde keine korrekte Zahl eingegeben!", vbCritical)
- End If
- TextBox_Anzahl.Text = CStr(A1.AktuellerStand)
- End Sub
- End Class
VB.NET-Quellcode
- Public Class Getränkedosenautomat
- Private AnzahlDosen As Byte
- Private Fassungsvermögen As Byte = 100
- Public Sub Bestücken(ByRef Anzahl As Integer)
- If AnzahlDosen + Anzahl <= Fassungsvermögen Then
- AnzahlDosen = CByte(AnzahlDosen + Anzahl)
- Anzahl = 0
- Else
- Anzahl = Fassungsvermögen - AnzahlDosen
- AnzahlDosen = Fassungsvermögen
- End If
- End Sub
- ...
- End Class