Einstieg in die Programmierung mit Visual Basic.NET Agenda - Methoden mit Argumenten - Überladen von Methoden - Eigenschaftenprozeduren - Eigenschaftenprozeduren automatisch generieren - Konstruktoren (Klasse)
Methoden mit Argumenten Wie wir im letzten Kapitel schon gesehen haben können Methoden (Sub, Function) auch mit Werten sogenannte Argumente oder Parameter aufgerufen werden. [Modifier] Sub Methodenname (Argumentenliste) [Anweisungsblock] [Exit Sub] [Anweisungsblock] End Sub [Modifier] Function Methodenname (Argumentenliste) As Typ [Anweisungsblock] [Exit Function] [Anweisungsblock] [Return ] End Sub Alle Statements in [ ] werden also optional angesehen. 2
Methoden mit Argumenten Aufbau Argumentenliste Normalerweise muss die Anzahl der Argumente mit der im Aufruf der Methode übereinstimmen. [Modifier] Sub Methodenname ([ByVal ByRef] Variablenname Typ) [Modifier] Function Methodenname ([ByVal ByRef] Variablenname Typ) As Typ Es können aber auch optionale Argumente angegeben werden. Diese müssen allerdings: - am Ende der Argumentenliste stehen - mit dem Schlüsselwort Optional gekennzeichnet werden - mit einem Standardwert initialisiert werden [Modifier] Sub Methodenname (Optional [ByVal ByRef] Variablenname Typ) Alle Statements in [ ] werden also optional angesehen. 3
Methoden mit Argumenten Übergabe ByRef Um Probleme zu verhindern werden Argumente standardmäßig per Wert (ByVal) übergeben. Dadurch wird der Originalwert nicht geändert und hat keine Auswirkung auf den Originalwert. Falls eine Rückwirkung gewünscht ist muss der Wert per Referenz (ByRef) übergeben werden. [Modifier] Sub Methodenname ([ByVal ByRef] Variablenname Typ) [Modifier] Function Methodenname ([ByVal ByRef] Variablenname Typ) As Typ Da der Standardwert ByVal ist, ist die Angabe optional. Aus lesbarkeitsgründen wird auf die Möglichkeit die Angabe ByVal weg zu lassen verzichtet. Alle Statements in [ ] werden also optional angesehen. 4
Methoden mit Argumenten Aufruf Methodenname([Parameter]) Bei einem Methodenaufruf hilft IntelliSense bei der Argumentenübergabe. IntelliSense zeigt Name und Typ der Argumente an. Weiterhin wird der Rückgabetyp bei Funktionen angezeigt. Argumente Rückgabewert 5
Überladen von Methoden Überladen von Methoden ermöglicht den Aufruf der Methode mit gleichem Namen und unterschiedlichen Argumenttypen. Dies wird genutzt wenn die gleiche Methode mit unterschiedlichen Datentypen aufgerufen werden soll. 6
Überladen von Methoden Im Aufruf der Methode hilft IntelliSense und zeigt an ob es Überladungen gibt und bietet die Möglichkeit die verschiedenen Argumente sich anzeigen zu lassen. 7
Eigenschaftenprozeduren Im letzten Kapitel zum Thema Klassen kam der Begriff Datenkapselung auf. Aber wir konnten nur auf Member zugreifen wenn sie Public waren. Mit Eigenschaftsprozeduren auch Properties genannt wird es möglich sein Kontrolle über das lesen bzw. das setzen der Variablen zu bekommen. Properties kapseln Daten indem sie die Klassenmember nach außen hin abschotten und kontrollieren. 8
Eigenschaftenprozeduren Beispiel Wir möchten unseren Traumwagen konfigurieren. - Es soll ein BMW werden - Das Auto soll rot sein - Das Auto soll viel Leistung haben Bis zum jetzigen Zeitpunkt hätte wir ein Auto bestellen können mit 1000PS denn es gab für die Klassenmember keine Kontrolle. 9
Eigenschaftenprozeduren Beispiel Um vorzubeugen, dass jemand ein Auto erzeugt mit Attributen die von uns als Designer nicht vorgesehen sind helfen uns Properties. Privates Klassenmember. Nach außen hin Sichtbare Eigenschaft. Über den Get Teil wird der Wert gelesen. Beim Setzen (Set) der Eigenschaft Leistung wird eine Funktion aufgerufen die die Leistung auf einen von uns gesetzten Wert begrenzt. Um die Leistung des Autos zu begrenzen wird eine Funktion aufgerufen die das erledigt. 10
Eigenschaftenprozeduren Automatisch generieren Damit die Schreibarbeit nicht überhand nimmt hilft uns die Entwicklungsumgebung bei der Erstellung der Properties. Dazu geben wir einfach den Anfang prop ein und Visual Studio bietet uns Properties gleich an. Wenn jetzt zweimal die Tab-Taste gedrückt wird generiert die Entwicklungsumgebung das unten gezeigte Code Snippet. Das Feld für unseres privates Member ist markiert und kann damit sofort ausgefüllt werden. Mit der Tab-Taste kann zu den anderen gelb markierten Feldern weitergesprungen werden. 11
Konstruktoren Klasse Wie bei Methoden kann auch eine Klasse mit einem Konstruktor instaziiert werden. Dieser Konstruktor wird mit der Klassenprozedur New() erstellt und kann auch überladen werden. Bei der Instanziierung wird jetzt automatisch die Überladung der Konstruktoren angezeigt. 12