Eleu Geschrieben 7. März 2018 Teilen Geschrieben 7. März 2018 Hallo, ich versuche mich in VB.net einzuarbeiten und hätte eine Frage zu dem Erstellen einer eigenen Klasse. Ich möchte gerne dieser Klasse via Button 2 Zahlen übergeben, die diese Klasse dann addieren und dann an eine TextBox ausgeben soll. Meine Klasse sieht bis jetzt so aus: Public Class Addiere Private mZahl1 As Integer Private mZahl2 As Integer Public Property Zahl1 As Integer Get Return mZahl1 End Get Set(ByVal value As Integer) mZahl1 = value End Set End Property Public Property Zahl2 As Integer Get Return mZahl2 End Get Set(ByVal value As Integer) mZahl2 = value End Set End Property Public Sub ShowErgebnis(ByVal mZahl1 As Integer, mZahl2 As Integer) mZahl1 = Zahl1 mZahl2 = Zahl2 End Sub End Class In der Form habe ich jetzt einen Button programmiert: Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim cls As New Addiere cls.Zahl1 = 3 cls.Zahl2 = 5 End Sub Kann mir jemand eine Hilfestellung geben, wie ich es programmieren muss, dass das Ergebnis in eine TextBox angezeigt wird. In diesem Fall eine 8. Ich habe schon mehrere Sachen probiert und komme nicht weiter. Gruß Eleu Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 7. März 2018 Teilen Geschrieben 7. März 2018 (bearbeitet) Deine Prozedur ShowErgebnis() ist schon mal nicht richtig. Es muss eine Funktion sein, die eben zahl1 und zahl2 addiert und das Ergebnis zurückgibt. Dann kannst du in der Prozedur Button3_Click() einfach das Ergebnis einer TextBox zuweisen. Public Class Addiere Public Property Zahl1 As Integer Public Property Zahl2 As Integer Function Berechne() As Integer Return Zahl1 + Zahl2 End Function End Class Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim add As New Addiere add.Zahl1 = 5 add.Zahl2 = 3 TextBox1.Text = add.Berechne() End Sub Deine Addieren-Klasse sollte nicht dafür zuständig sein, das Ergebnis in die Textbox zu schreiben. Sie sollte nur das Ergebnis zurückliefern und die Anzeige in der Textbox sollte die Klasse übernehmen, die es auch braucht. Ansonsten ist deine Addieren-Klasse abhängig von der TextBox und die Klassen sollten so unabhängig wie möglich sein. Bearbeitet 7. März 2018 von Whiz-zarD Eleu reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eleu Geschrieben 7. März 2018 Autor Teilen Geschrieben 7. März 2018 vor 30 Minuten schrieb Whiz-zarD: Deine Addieren-Klasse sollte nicht dafür zuständig sein, das Ergebnis in die Textbox zu schreiben. Sie sollte nur das Ergebnis zurückliefern und die Anzeige in der Textbox sollte die Klasse übernehmen, die es auch braucht. Ansonsten ist deine Addieren-Klasse abhängig von der TextBox und die Klassen sollten so unabhängig wie möglich sein. Hallo Whiz-zarD, vielen Dank. So wollte ich es ja auch machen. Ich hätte schreiben sollen ....die diese Klasse dann addieren und dann, mit dem Betätigen des Button, an eine TextBox ausgeben soll. Gruß Eleu Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eleu Geschrieben 7. März 2018 Autor Teilen Geschrieben 7. März 2018 Hallo, vielleicht noch eine Frage: Warum muss ich eigentlich die Klasse "Addiere" mit "Dim add As New Addiere" an add vererben? Warum kann man die Klasse "Addiere" nicht direkt verwenden? Ich hoffe, ich habe mich verständlich ausgedrückt? Gruß Eleu Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maestro impostor Geschrieben 7. März 2018 Teilen Geschrieben 7. März 2018 Du vererbst die Klasse nicht. Deine Klasse Addiere ist im Prinzip nur ein Muster / Bauplan / Konstrukt wie dein reales Objekt auszusehen hat bzw. welche Eigenschaften und Methoden es besitzt. Dim add As New Addiere Damit drückst du im Prinzip nur aus: Baue mir ein Objekt mit der Bezeichnung 'add' basierend auf meinem Bauplan 'Addiere' Siehe auch: https://de.wikipedia.org/wiki/Klasse_(Objektorientierung) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 7. März 2018 Teilen Geschrieben 7. März 2018 (bearbeitet) Du schmeißt hier Begriffe etwas durcheinander. "Vererben" bedeutet was anderes. Vererben ist, wenn eine Klasse von einer anderen Klasse erbt. Beispiel: Public Class BonusAddiere Inherits Addiere public Function BerechneBonus() As Integer Return MyBase.Berechne() * 2 End Function End Class Die Klasse BonusAddiere erbt von Addiere (achte auf das Schlüsselwort Inherits). Die Methode BerechneBonus() holt sich das Ergebnis von Berechne() aus der Basisklasse und multipliziert diesen Wert mit 2. Die Vererbung ist einer der Grundkonzepte der Objektorientierung, die du verstanden haben solltest, wenn du mit einer objektorientierten Sprache arbeiten möchtest. Die Zeile Dim add As New Addiere Erstellt nur ein Objekt der Klasse Addiere, und weist es der Variable add zu. In anderen Programmiersprachen (z.B. C#) würde es so aussehen: var add = new Addiere(); Da wird es vielleicht ein bisschen deutlicher, dass wir hier nur eine Variable mit dem namen add definieren, die als Wert ein Objekt von Addiere bekommt. Bearbeitet 7. März 2018 von Whiz-zarD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eleu Geschrieben 7. März 2018 Autor Teilen Geschrieben 7. März 2018 Hallo, das mit dem Vererben schau ich mir noch mal genauer an So geht es übrigens auch: Public Class Addiere_Variante2 Function Berechne(ByVal Zahl1 As Integer, Zahl2 As Integer) As Integer Return Zahl1 + Zahl2 End Function End Class und in der Schaltfläche dann Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Dim clg As New Addiere_Variante2 TextBox1.Text = clg.Berechne(5, 3) End Sub Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.