VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung...

44
VB .NET Proseminar .NET SS04

Transcript of VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung...

Page 1: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

VB .NET

Proseminar .NET

SS04

Page 2: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

2

Inhalt

• Visual Basic und die Microsoft-Welt

• Prozedurale Programmierung

• Objektorientierte Programmierung

• Literatur

VB .NET

Page 3: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

3

• das erste Microsoft-Produkt war ein Basic-Interpreter

• von Microsoft stammende Basic-Dialekten:– QBasic, GW-Basic, Visual Basic für DOS (MS-DOS)

– Visual Basic für Windows, Word Basic, Access Basic

– Visual Basic für Applikationen (VBA)

– VB Script (Explorer)

• Visual Basic ist die unter Windows am häufigsten eingesetzte Programmiersprache

• Visual Basic und die Microsoft-Welt

VB .NET

Visual Basic und die Microsoft-Welt

Page 4: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

4

Prozedurale Programmierung

• Variablen, Konstante und Felder

• Operatoren

• Steueranweisungen

• Prozeduren

VB .NET

Page 5: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

5

Variablen, Konstante und Felder (1)

• Deklaration

‘ Deklaration von Variablen

Dim Variable1, Variable2 As Datentyp

Dim Variable3 As Integer = 1

‘ Deklaration von Arrays

Dim Array1(), Array2(,,,) As String

Dim Array3(10) As Long

Dim Kunden() As String = {“Maier“, “Hans“}

‘ Deklaration von Konstanten

Const PI = 3.1415

VB .NET

Page 6: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

6

Variablen, Konstante und Felder (2)

VB .NET

• elementare Datentypen

- Ganzzahlen (Byte, Short, Integer, Long)

- Gleitkommazahlen (Single, Double, Decimal)

- alphanumerische Zeichen (Char, String)

- sonstige (Boolean, Date)

Page 7: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

7

Variablen, Konstante und Felder (3)

VB .NET

Schlüsselwort Zugriff möglich:

Public in der gesamten Anwendung

Protected in der eigenen oder in einer abgeleiteten Klasse

Friend in derselben Assembly

Protected Friendin der eigenen oder in einer abgeleiteten Klasse und in derselben Assembly

Private innerhalb des Moduls oder der Klasse

Static nur auf Prozedurebene

Page 8: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

8

Variablen, Konstante und Felder (4)

VB .NET

• Wertzuweisung

‘ Über Zuweisungen erhalten variablen einen Wert

Dim Variable1 As Double

Variable1 = 1.23456789

Dim Kunden(2) As String

Kunden(0) = “Maier“

Kunden(1) = “Hans“

Dim Variable2 As Klasse1

Variable2 = New Klasse1()

Page 9: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

9

Variablen, Konstante und Felder (5)

VB .NET

• Typkonvertierung- implizite Konvertierung (Option Strict Off)

Dim i As Integer, d As Double

i = 432

d = i

- explizite Konvertierung (CBool, CByte, CChar, CDate, CDbl, CDec, CInt, CLng, CObj, CShort, CSng, CStr)

d = CDbl(i)

- generische Umwandlungsfunktion CType

d = CType(i, Double)

Page 10: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

10

Operatoren

• Arithmetische Operatoren (=, +, -, *, /, \, ^, Mod, &, +=, -=, *=, /=, \=, ^=, &=)

• Vergleichsoperatoren (<, >, =, < >, >=, <=, Like)

“VB .NET“ Like “*.[M-O]??“

• Verkettungsoperatoren (&, +)

• Logische Operatoren (Not, And, Or, Xor, AndAlso, OrElse)

• Bitweise Operationen (Not, And, Or, Xor)

VB .NET

Page 11: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

11

Steueranwesungen (1)

• die If-Anweisung

If Bedingung1 Then

‘ Bedingung1 wahr

ElseIf Bedingung2 Then

‘ Bedingung1 falsch und Bedingung2 wahr

Else

‘ Bedingung1 falsch und Bedingung2 falsch

End If

VB .NET

Page 12: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

12

Steueranwesungen (2)

• die Select Case-Anweisung

Select Case Variable1

Case Ausdruck1

‘ Variable1 hat den Wert Ausdruck1

Case Ausdruck2

‘ Variable1 hat den Wert Ausdruck2

Case Else

‘ Variable1 hat keinen der genannten Werte

End Select

VB .NET

Page 13: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

13

Steueranwesungen (3)

• die For...Next-Schleife

For Zählervariable = Anfangswert To Endwert Step Inkrement

‘ Auszuführender Code

Next Zählervariable

• die For Each...Next-Schleife

For Each Elementvariable In Liste ‘ ‘ Auszuführender Code

Next Elementvariable

VB .NET

Page 14: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

14

Steueranwesungen (4)

• die While-Schleife

While boolescher Ausdruck

‘ Auszuführender Code

End While

• die Do...Loop-Schleife

Do

‘ Auszuführender Code

Loop Until boolescher Ausdruck

VB .NET

Page 15: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

15

Steueranwesungen (5)

• (strukturierte) AusnahmebehandlungTry

‘ Zu schützender Code

Catch Ausnahme As Ausnahmetyp

‘ beim Eintreten einer Ausnahme auszuführender Code

Finally

‘ dieser Code wird ausgeführt, ob nun eine Ausnahme ‘ ausgelöst wird oder nicht

End Try

VB .NET

Page 16: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

16

Prozeduren

• Visual Basic-Code wird immer in Prozeduren geschrieben

• Prozedurtypen in Visual Basic:- Sub-Prozeduren

- Function-Prozeduren

- Property-Prozeduren

- Ereignisbehandlungsprozeduren

VB .NET

Page 17: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

17

Sub-Prozeduren (1)

• Eine Sub-Prozedur (Subroutine) ist ein Block von Visual Basic .NET-Code, die zwischen dem Anweisungen Sub und End Sub eingeschlossen ist.

Sub Name()

‘ Code der Subroutine

End Sub

Sub Name(Argumentliste)

‘ Code der Subroutine

End Sub

VB .NET

Page 18: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

18

Sub-Prozeduren (2)

• Argumentliste

Sub Sub1(ByRef a As Long, ByVal b As Long, _

Optional c As Long = 0)

a += b + c

End Sub

• AufrufenDim x As Long = 0

Call Sub1(x, 1)

Sub1(x, 2, 1)

Call MsgBox(x)

VB .NET

Page 19: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

19

Function-Prozeduren (1)

• Eine Function-Prozedur ist ein Block von Visual Basic .NET-Code, die zwischen dem Anweisungen Function und End Function eingeschlossen ist, und einen Rückgabewert an das aufrufende Programm zurückgibt.

Function Name[(Argumentliste)] As Datentyp

Dim Rückgabewert As Datentyp

‘ sonstiger Code der Funktion

Return Rückgabewert

End Function

• AufrufenWert = Funktion1(100)

VB .NET

Page 20: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

20

Die Main-Prozedur

• Jedes Visual Basic-Programm muss eine Prozedur mit der Bezeichnung Main enthalten

• Varianten von Main

Sub Main()

Sub Main(ByVal Args() As String)

Function Main() As Integer

Function Main(ByVal Args() As String) As Integer

VB .NET

Page 21: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

21

Objektorientierte Programmierung

• Klassen und Objekte

• Felder, Eigenschaften, Methoden und Ereignisse

• Vererbung und Schnittstellen

• Module und Strukturen

VB .NET

Page 22: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

22

Klassen und Objekte (1)

• Deklaration von Klassen[Public|Private|Friend] Class Klasse1

‘ restlicher Code der Klasse

End Class

• Deklaration von Objekten

Imports System.Collections

Dim Variable1 As Klasse1

Dim Variable2 As New Hashtable

VB .NET

Page 23: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

23

Klassen und Objekte (2)

• Konstruktoren

Class Klasse1

Public Sub New()

‘ Code zur Initialisierung

End Sub

Public Sub New(Variable1 As Datentyp)

‘ Code zur Initialisierung

End Sub

End Class

VB .NET

Page 24: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

24

Klassen und Objekte (3)

• Destruktoren

Class Klasse1

‘ wird vom Garbage Collector aufgerufen (NDD)

‘ NND = Nondeterministic Distruction

Protected Overrides Sub Finalize()

‘ Code zum Aufräumen

End Sub

End Class

VB .NET

Page 25: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

25

Klassen und Objekte (4)

Class Klasse1

Implements System.IDisposable

Protected Overrides Sub Finalize()

Dispose(false)

End Sub

Public Sub Dispose() Implements _

System.IDisposable.Dispose

GC.SuppressFinalize(Me)

Dispose(true)

End Sub

VB .NET

Protected Sub Dispose(Disposing _

As Boolean)

‘ Freigabe von lokalen nicht ‘ verwalteten Ressourcen

If (Disposing) Then

‘ Member.Dispose()

End If

End Sub

End Class

Page 26: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

26

Klassen und Objekte (5)

• Ein Namensraum ist ein abstraktes Konzept, das verwendet wird, um eine reihe von Klassen oder Modulen zusammenzufassen

Namespace Namensraum1

Class Klasse1 ...

Module Modul1 ...

End Namespace

Dim Variable1 As New Namensraum1.Klasse1

Variable1.Feld1 = Namensraum1.Modul1.Funktion1()

VB .NET

Page 27: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

27

Felder, Eigenschaften, Methoden und Ereignisse (1)

• Deklaration von FeldernClass Klasse1

[Public|Private|Friend|Protected|Shared] Feld1 As Datentyp

End Class

• Das Schlüsselwort Shared gibt an, dass die Variable freigegeben ist, d.h. sie ist keiner bestimmten Instanz einer Klasse zugewiesen

• Zugriff auf FelderDim Variable1 As New Klasse1

Variable1.Feld1 = 0

VB .NET

Page 28: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

28

Felder, Eigenschaften, Methoden und Ereignisse (2)

• Deklaration von EigenschaftenClass Klasse1

Private Variable1 As Datentyp

Public Property Eigenschaft1() As Datentyp

Get

Return Variable1

End Get

Set (ByVal Wert As Datentyp)

Variable1 = Wert

End Set

End Class

VB .NET

Page 29: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

29

Felder, Eigenschaften, Methoden und Ereignisse (3)

• Deklaration von MethodenClass Klasse1

[Public|Private|Friend|Protected|Shared] Sub Methode1()

End Sub

End Class

• Zugriff auf Methoden

Dim Variable1 As New Klasse1

Call Variable1. Methode1()

Dim Heute As Date

Heute = DateTime.Today()

VB .NET

Page 30: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

30

Felder, Eigenschaften, Methoden und Ereignisse (4)

• Ereignisse ermöglichen es einem Objekt, anderen Elementen mitzuteilen, dass etwas geschehen ist (z.B. Benutzeraktionen)

• Ein Ereignishandler ist eine Sub-Prozedur, die aufgerufen wird, wenn ein entsprechendes Ereignis auftritt

• Der Aufruf eines Ereignishandlers erfolgt automatisch

VB .NET

Page 31: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

31

Felder, Eigenschaften, Methoden und Ereignisse (5)

• Deklaration von EreignissenClass Klasse1

Public Event Event1(Argumente)

Private Sub RaiseEvent1()

‘ Ereignis wird ausgelöst

RaiseEvent Event1(...)

End Sub

End Class

VB .NET

Page 32: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

32

Felder, Eigenschaften, Methoden und Ereignisse (6)

• Abfangen von Ereignissen mit der Handles-KlauselDim WithEvents Variable1 As New Klasse1

Sub Variable1_Event1() Handles Variable1.Event1

‘ Code der Ereignisbehandlungsprozedur

End Sub

VB .NET

Page 33: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

33

Felder, Eigenschaften, Methoden und Ereignisse (7)

• Abfangen von Ereignissen mit der AddHandler-AnweisungDim Variable1 As New Klasse1

...

AddHandler Variable1.Event1, AdressOf Variable1_Event1

...

Sub Variable1_Event1()

‘ Code der Ereignisbehandlungsprozedur

End Sub

...

RemoveHandler Variable1.Event1, AdressOf Variable1_Event1

...

VB .NET

Page 34: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

34

Vererbung und Schnittstelen (1)

• Vererbung von FunktionalitätPublic Class Klasse1

‘ Code der Klasse1

Public Sub Methode1()

‘ Code der Methode

End Sub

End Class

Public Class Klasse11

Inherits Klasse1

‘ Code der Klasse11

End Class

VB .NET

Page 35: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

35

Vererbung und Schnittstelen (2)

• Modifizierer zur Vererbung- Versiegelte Klassen

Public NonInheritable Class Klasse1

Public Shared Sub Methode1()

‘ Code der Methode1

End Sub

End Class

- Abstrakte Klassen

Public MustInherit Class Klasse1

Public MustOverride Sub Methode1()

End Class

VB .NET

Page 36: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

36

Vererbung und Schnittstelen (3)

• Erweiterung von FunktionalitätPublic Class Klasse11

Inherits Klasse1

Public Function Methode2() As String

End Function

End Class

VB .NET

Page 37: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

37

Vererbung und Schnittstelen (4)

• Überschreiben von FunktionalitätPublic Class Klasse1

Public Overridable Sub Methode1()

End Sub

End Class

Public Class Klasse11

Inherits Klasse1

Public Overrides Sub Methode1()

‘ neue Implementierung

End Sub

End Class

VB .NET

Page 38: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

38

Vererbung und Schnittstelen (4)

• Überschatten von FunktionalitätPublic Class Klasse1

Public Sub Methode1()

End Sub

End Class

Public Class Klasse11

Inherits Klasse1

Public Shadows Sub Methode1()

‘ neue Implementierung

End Sub

End Class

VB .NET

Page 39: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

39

Vererbung und Schnittstelen (5)

Überschatten Überschreiben

Schutz von späteren Änderungen der Basisklasse, durch die ein Member eingeführt wird, der bereits in der abgeleiteten Klasse definiert wurde

Gewährleisten des Polymorphismus durch die Definition einer anderen Implementierung einer Prozedur oder Eigenschaft mit derselben Aufrufabfolge

Wenn weder Shadows noch Overrides angegeben wurden wird Shadows angenommen

Overridable ist in der Basisklasse erforderlich. Overrides ist in der abgeleiteten Klasse erforderlich

Jeder deklarierter Elementtyp kann überschattet werden

Nur Prozeduren (Function oder Sub) oder Eigenschaften können überschrieben werden

Page 40: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

40

Vererbung und Schnittstelen (6)

VB .NET

Class Klasse1

Public Sub Methode1()

End Sub

Public Sub Methode1(I As Integer)

End Sub

Public Sub Methode2()

End Sub

Public Sub Methode2(I As Integer)

End Sub

End Class

Class Klasse11

Inherits Klasse1

Public Overloads Sub Methode1()

End Sub

Public Shadows Sub Methode2(I As Long)

End Sub

End Class

Page 41: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

41

Vererbung und Schnittstelen (7)

• Deklaration von SchnittstellenPublic Interface Schnittstelle1

Public Sub Methode1()

End Interface

Public Class Klasse1

Implements Schnittstelle1

Public Sub Methode1() Implements Schnittstelle1.Methode1

End Sub

End Class

VB .NET

Page 42: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

42

Module und Strukturen (1)

• Module stellen eine einfachere Möglichkeit zur Organisation von Hilfsfunktionen und globalen Daten bereit

• Module sind ein mit Klassen vergleichbarer Verweistyp

• Die Member eines Moduls sind implizit Shared

• Module können nicht instanziiert werden, können keine Schnittstellen implementieren, können nicht vererbt werden

• DeklarationModule Modul1

‘ Code des Moduls

End Module

VB .NET

Page 43: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

43

Module und Strukturen (2)

• Strukturen stellen ähnlich wie Klassen Datenstrukturen dar

• Verallgemeinerung des benutzerdefinierten Typs, der in älteren Versionen von Visual Basic unterstützt wird

• Strukturen sind im Gegensatz zu Klassen Wertetypen

• Strukturen können nicht vererbt werden

• DeklarationStructure Struktur1

Public Variable1 As String

Private Array1() As Long

End Stucture

VB .NET

Page 44: VB.NET Proseminar.NET SS04. 2 Inhalt Visual Basic und die Microsoft-Welt Prozedurale Programmierung Objektorientierte Programmierung Literatur VB.NET.

44

Literatur

• Michael Kolberg: “VB .NET Programmierung“, Franzis‘ Verlag GmbH, 2003

• “Programming in the .NET Environment“

• Jeff Prosise: “Microsoft .NET Entwicklerbuch“, Microsoft Press, 2002

VB .NET