Prozedur mit unbestimmter Anzahl von Parametern defininieren
Ich habe momentan viele Baustellen und arbeite mich in mehreren Computersprachen gleichzeitig hinein. Ich weiß, dass das einige für falsch halten oder ich mich erst einmal nur mit einer Computersprache beschäftigen sollte und diese entsprechend perfektionieren, ich bin allerdings die Art Mensch, die direkt mehrere Sprachen (als Beispiel) gleichzeitig lernt. Ich kann ziemlich gut und möchte an diesem Verhalten auch nichts ändern.
Es geht jedenfalls um das Definieren einer Prozedur mit einer unbestimmten Anzahl von Parametern. Ich weiß, dass ein Parameterarray in der Parameterliste als letzter Eintrag einer Prozedur deklariert werden kann, somit habe ich den ersten Schritt des Verständnisses schon gelöst. Folgendes ist nun aber mein Problem und zwar habe ich die Parameterliste in der Prozedurdeklaration wie sonst auch definiert. Alle außer dem letzten Parameter müssen, zumindest nach meinem jetzigen Wissensstand, für die Prozedur erforderlich sein.
Soweit so gut. Ich habe natürlich auch schon hinter jedem Namen der Parameterarrays wie gewohnt auch die As-Klausel eingefügt, doch scheinbar habe ich schon hier einen/den Fehler. Ich habe alles mehrmals überprüft und finde keinen typischen Fehler. Ich habe alles korrekt geschrieben, keine Leerzeilen oder sonst etwas vergessen und finde auch nach mehrmaliger Überprüfung einfach nichts. Es muss also irgendein Schritt vor der Einfügung der As-Klausel ausgelassen worden sein.
Kennt ihr euch mit dem Definieren von Prozeduren aus? Wisst ihr ob ich einen einfachen Denkfehler gemacht habe? Gibt es vor der As-Klausel noch einen Schritt der ausgeführt werden muss, damit das Ganze auch wirklich funktioniert? Habt ihr grundlegende Tipps die ich bei Visual Basic in Bezug auf Parametern anwenden könnte?
Es gibt verschiedene Möglichkeiten Prozeduren bzw. Funktionen zu programmieren, die auf unterschiedliche Anzahlen (oder Typen) von Parametern flexibel reagieren können.
Eine Möglichkeit sind optionale Parameter. Optionale Parameter müssen immer einen Standardwert haben. Eine Prozedur kann auch mehrere optionale Parameter haben. Falls die Prozedur auch einen erforderlichen Parameter haben soll, muss dieser zuerst deklariert werden.
Beispiel (programmiert mit Visual Basic 2010):
Die folgende Prozedur soll den Gesamtpreis der Waren ausrechnen:
Private Sub Summe(Preis1 As Single, Optional Preis2 As Single = 0)
Dim summe As Single
Summe = Preis1 + Preis2
MsgBox("Der Gesamtpreis ist " & summe & " €")
End Sub
Das Beispiel zeigt zwar anschaulich wie ein optionaler Parameter deklariert wird, ist aber trotzdem schlecht umgesetzt. Für jede weitere Ware müsste ein weiterer optionaler Parameter deklariert werden. Das ist sehr umständlich. In diesem Fall wäre ein dynamischer Array die bessere Lösung. Optionale Parameter sollte man also nur dann einsetzten, wenn es wirklich sinnvoll ist. Sinnvoll wäre ein optionaler Parameter zum Beispiel, wenn es bei den obigen Beispiel Rabatt geben würde, der variabel ist und nicht für alle Kunden gültig ist (der Standardwert wäre dann 0).
Ein ganz anderer Ansatz wäre das Überladen von Methoden. Hierfür braucht man das Schlüsselwort "Overloads". Dieser Ansatz ist aber etwas komplex. Zunächst müsstest du dich ausführlich mit der objektorientierten Programmierung beschäftigen. Dann kannst du nachlesen, wie das Überladen von Methoden funktioniert (eine Methode ist übrigens eine Prozedur innerhalb einer Klasse). Überladene Methoden sind sehr flexibel einsetzbar, besonders auch im Bezug auf unterschiedlichen Parametern. Das überladen von Methoden funktioniert übrigens nicht bei Visual Basic 6.0 oder früher.
Generell solltest du dich aber an den Grundsatz halten, dass eine Prozedur möglichst nur eine Aufgabe übernehmen sollte. Wenn man zum Beispiel ein Programm schreiben will, dass den Einkauf verwaltet, dann übernimmt eine Prozedur die Berechnung des Gesamtpreises, eine andere Prozedur verwaltet die Bezahlung, und so weiter. Natürlich könnte man beide Aufgaben auch mit einer Prozedur erledigen, aber dann würde das Programm unübersichtlich und unflexibler werden. Mit einem geschickten Entwurf lassen sich komplizierte Prozeduren mit unterschiedlicher Anzahl von Parametern oftmals gänzlich vermeiden.
Link dieser Seite https://www.talkteria.de/forum/topic-241495.html
Ähnliche Themen
Weitere interessante Themen
- Kräuter auf Balkon - was ist sinnvoll und robust? 1194mal aufgerufen · 1 Antworten · Autor: Carmili · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Kräuter auf Balkon - was ist sinnvoll und robust?
- Luftwurzeln der Monstera: Tropfenbildung/Gestank 1664mal aufgerufen · 1 Antworten · Autor: Diamante · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Luftwurzeln der Monstera: Tropfenbildung/Gestank
- Welche Zimmerpflanzen mögen es warm und sonnig? 2449mal aufgerufen · 1 Antworten · Autor: Diamante · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Welche Zimmerpflanzen mögen es warm und sonnig?