37
MSDN Webcast: MSDN Webcast: VB.NET für Einsteiger und VB.NET für Einsteiger und Umsteiger, Teil 9 Umsteiger, Teil 9 Zeichenketten, Delegates und Events Zeichenketten, Delegates und Events (Level 100) (Level 100) Presenter: Daniel Presenter: Daniel Walzenbach Walzenbach Technologieberater Technologieberater Microsoft Deutschland GmbH Microsoft Deutschland GmbH [email protected] http://blogs.msdn.com/walzenbach

MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Embed Size (px)

Citation preview

Page 1: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

MSDN Webcast:MSDN Webcast:

VB.NET für Einsteiger und Umsteiger, VB.NET für Einsteiger und Umsteiger, Teil 9Teil 9Zeichenketten, Delegates und EventsZeichenketten, Delegates und Events(Level 100)(Level 100)

Presenter: Daniel WalzenbachPresenter: Daniel Walzenbach

TechnologieberaterTechnologieberaterMicrosoft Deutschland GmbHMicrosoft Deutschland [email protected]://blogs.msdn.com/walzenbach

Page 2: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

VerlosungVerlosung

Programmieren lernen mit Programmieren lernen mit Visual Basic 2005Visual Basic 2005

10 Bücher 10 Bücher werden unter allen Teil-werden unter allen Teil-nehmern verlost, die an nehmern verlost, die an mindes-mindes-tens sieben Webcasts teilnehmentens sieben Webcasts teilnehmen

Page 3: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Visual Studio 2005 Visual Studio 2005 ExpressExpressKleine Geschwister des Visual Studio Kleine Geschwister des Visual Studio 20052005

KostenlosKostenlos

http://www.microsoft.com/germany/http://www.microsoft.com/germany/msdn/vstudio/products/express/vb/msdn/vstudio/products/express/vb/default.mspxdefault.mspx

Visual Basic 2005 Express EditionVisual Basic 2005 Express Edition

Visual C# 2005 Express EditionVisual C# 2005 Express Edition

Visual C++ 2005 Express EditionVisual C++ 2005 Express Edition

Visual Web Developer 2005 Express Visual Web Developer 2005 Express EditionEdition

SQL Server 2005 Express EditionSQL Server 2005 Express Edition

Page 4: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

AgendaAgenda

Übungsaufgabe Teil 8Übungsaufgabe Teil 8

ZeichenkettenZeichenketten

DelegatesDelegates

EventsEvents

ÜbungsaufgabeÜbungsaufgabe

ZusammenfassungZusammenfassung

Page 5: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Übungsaufgabe Teil 8Übungsaufgabe Teil 8

Berechnen Sie die Wurzeln von 1 bis Berechnen Sie die Wurzeln von 1 bis nn in einer in einer forfor Schleife Schleifenn soll von dem Anwender frei eingegeben soll von dem Anwender frei eingegeben werdenwerden

Speichern Sie die Wurzeln in einem Speichern Sie die Wurzeln in einem Array der richtigen GrößeArray der richtigen Größe

Bilden Sie den Mittelwert aller Bilden Sie den Mittelwert aller Wurzeln in dem ArrayWurzeln in dem Array

Implementieren Sie Implementieren Sie Ausnahmebehandlung um potentielle Ausnahmebehandlung um potentielle Fehler abzufangenFehler abzufangen

Geben Sie alle Wurzeln und deren Geben Sie alle Wurzeln und deren Mittelwert ausMittelwert aus

Page 6: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Demonstration #1Demonstration #1

demodemo

Übungsaufgabe, Teil 8Übungsaufgabe, Teil 8

Page 7: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

AgendaAgenda

Übungsaufgabe Teil 8Übungsaufgabe Teil 8

ZeichenkettenZeichenketten

DelegatesDelegates

EventsEvents

ÜbungsaufgabeÜbungsaufgabe

ZusammenfassungZusammenfassung

Page 8: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ZeichenkettenZeichenketten

Eine Zeichenkette ist ein Array aus Eine Zeichenkette ist ein Array aus Char Char

Das Arbeiten mit Das Arbeiten mit CharChar Arrays ist nicht so Arrays ist nicht so komfortable wie mit der komfortable wie mit der StringString Klasse Klasse

Die Die StringString Klasse ist Klasse aus dem Klasse ist Klasse aus dem .NET Framework.NET Framework

kein VB.NET Featurekein VB.NET Feature

Page 9: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ZeichenkettenZeichenketten

Zeichenketten anlegen (geht ohne Zeichenketten anlegen (geht ohne new)new)

Zeichenketten können Zeichenketten können zusammengefügt werdenzusammengefügt werden

Dim text As String = "Hallo Welt!"

Dim text1 As String = "Hallo"Dim text2 As String = " Welt"Dim text3 As String = text1 & text2 & "!" Console.WriteLine(text3)

Page 10: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ZeichenkettenZeichenketten

Die String Klasse des .NET Die String Klasse des .NET Frameworks enthält viele Methoden Frameworks enthält viele Methoden und Propertiesund Properties

LengthLength

EndsWith, StartsWithEndsWith, StartsWith

IndexOf, LastIndexOfIndexOf, LastIndexOf

IndexOfAny, LastIndexOfAnyIndexOfAny, LastIndexOfAny

Insert, Remove, ReplaceInsert, Remove, Replace

Trim, TrimLeft, TrimRightTrim, TrimLeft, TrimRight

Substring, Split, Concat, Join, Substring, Split, Concat, Join, ToCharArrayToCharArray

ToLower, ToLowerInvariant, ToUpper, ToLower, ToLowerInvariant, ToUpper, ToUpperInvariantToUpperInvariant

Page 11: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ZeichenkettenZeichenketten

Die String Klasse des .NET Die String Klasse des .NET Frameworks enthält viele statische Frameworks enthält viele statische Methoden und PropertiesMethoden und Properties

EmptyEmpty

ConcatConcat

FormatFormat

IsNullOrEmptyIsNullOrEmpty

JoinJoin

Page 12: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ZeichenkettenZeichenketten

Achtung, Performance!!!Achtung, Performance!!!

StingSting ist unveränderlich ist unveränderlich

Viele neue Viele neue StringString Objekte können ein Objekte können ein Programm langsam machenProgramm langsam machenDim Text As String = String.EmptyFor i As Integer = 0 To 100000 Text += "Hallo"NextConsole.WriteLine(Text) ' Besser! Dim TextConcat As New System.Text.StringBuilderFor i As Integer = 0 To 100000 TextConcat.Append("Hallo")NextConsole.WriteLine(TextConcat)

Page 13: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Demonstration #2Demonstration #2

demodemo

StringsStrings

Page 14: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

AgendaAgenda

Übungsaufgabe Teil 8Übungsaufgabe Teil 8

ZeichenkettenZeichenketten

DelegatesDelegates

EventsEvents

ÜbungsaufgabeÜbungsaufgabe

ZusammenfassungZusammenfassung

Page 15: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Delegates Delegates (Funktionszeiger)(Funktionszeiger)Wofür werden Zeiger auf Funktionen Wofür werden Zeiger auf Funktionen benötigt?benötigt?

Beispiel: SortierungBeispiel: SortierungBei der Sortierung muss entschieden Bei der Sortierung muss entschieden werden, welches das größere von zwei werden, welches das größere von zwei Objekten istObjekten ist

Problemlos sind: Problemlos sind: IntegerInteger, , DoubleDouble, , StringString, …, …

Was ist mit eigenen Klassen?Was ist mit eigenen Klassen?

Page 16: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Demonstration #3Demonstration #3

demodemo

BubblesortBubblesort

Page 17: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Delegates Delegates (Funktionszeiger)(Funktionszeiger)Es muss festgestellt werden, welches Es muss festgestellt werden, welches Objekt größer ist…Objekt größer ist…

… … egal um welchen Objekttyp es sich egal um welchen Objekttyp es sich handelthandelt

=> eigene Vergleichsroutine => eigene Vergleichsroutine schreibenschreiben

If Daten(j) > Daten(pos) Then pos = jEnd If

Page 18: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Delegates Delegates (Funktionszeiger)(Funktionszeiger)Ein Delegate ist ein Objekt das auf Ein Delegate ist ein Objekt das auf eine Methode zeigteine Methode zeigt

Wenn dieses Objekt verwendet wird, Wenn dieses Objekt verwendet wird, dann wird die Methode aufgerufen auf dann wird die Methode aufgerufen auf die das Delegate zeigtdie das Delegate zeigt

Page 19: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Delegates Delegates (Funktionszeiger)(Funktionszeiger)Schritt 1: Delegate deklarierenSchritt 1: Delegate deklarieren

Schritt 2: Delegate Objekt Schritt 2: Delegate Objekt instanziereninstanzieren

Schritt 3: Delegate verwendenSchritt 3: Delegate verwenden

Delegate Function Add(ByVal i1 As Integer, ByVal i2 As Integer) As Integer

Dim a As New Add(AddressOf Addiere)

Console.WriteLine(a(5, 6)) Function Addiere( _ ByVal Summand1 As Integer, _ ByVal Summand2 As Integer) As Integer  Return Summand1 + Summand2 End Function

Page 20: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Delegates Delegates (Funktionszeiger)(Funktionszeiger)Vollständiges BeispielVollständiges Beispiel

Delegate Function Add(ByVal i1 As Integer, ByVal i2 As Integer) As Integer Sub main()  Dim a As New Add(AddressOf Addiere) Console.WriteLine(a(5, 6)) End Sub Function Addiere( _ ByVal Summand1 As Integer, _ ByVal Summand2 As Integer) As Integer  Return Summand1 + Summand2 End Function

Page 21: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Demonstration #4Demonstration #4

demodemo

DelegatesDelegates

Flexibler BubblesortFlexibler Bubblesort

Page 22: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

AgendaAgenda

Übungsaufgabe Teil 8Übungsaufgabe Teil 8

ZeichenkettenZeichenketten

DelegatesDelegates

EventsEvents

ÜbungsaufgabeÜbungsaufgabe

ZusammenfassungZusammenfassung

Page 23: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Events (Ereignisse)Events (Ereignisse)

Was sind Events?Was sind Events?

Typische Beispiele:Typische Beispiele:Eine E-Mail ist angekommenEine E-Mail ist angekommen

Ein Button wurde angeklicktEin Button wurde angeklickt

Der Inhalt einer Datei auf der Festplatte Der Inhalt einer Datei auf der Festplatte ändert sichändert sich

Page 24: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Events (Ereignisse)Events (Ereignisse)

Ein Event ist eine Nachricht, die von Ein Event ist eine Nachricht, die von einem Objekt (Sender) gesendet einem Objekt (Sender) gesendet wurde um über ein bestimmtes wurde um über ein bestimmtes Ereignis zu informieren.Ereignis zu informieren.

Das Objekt, welches die Nachricht Das Objekt, welches die Nachricht erhält ist der Empfängererhält ist der Empfänger

Problem: Der Sender weiß im Vorfeld Problem: Der Sender weiß im Vorfeld nicht, welches Objekt oder Methode nicht, welches Objekt oder Methode das Ereignis bearbeitet.das Ereignis bearbeitet.

Zwischen dem Sender und Empfänger Zwischen dem Sender und Empfänger wird ein „Vermittler“ benötigt => wird ein „Vermittler“ benötigt => DelegateDelegate

Page 25: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Demonstration #5Demonstration #5

demodemo

EventsEvents

Page 26: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Events (Ereignisse)Events (Ereignisse)

Entscheidende Eigenschaft bei Entscheidende Eigenschaft bei Events:Events:

Es wird NICHT festgelegt, welche Es wird NICHT festgelegt, welche Methode beim Auslösen des Events Methode beim Auslösen des Events aufgerufen wirdaufgerufen wird

Die aufzurufende Methode wird von dem Die aufzurufende Methode wird von dem Programmierer angegebenProgrammierer angegeben

Beispiel: Wenn der Button „Beispiel: Wenn der Button „btn1btn1“ “ geklickt wird soll die Methode „geklickt wird soll die Methode „xyzxyz“ “ aufgerufen werdenaufgerufen werden

Page 27: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Events (Ereignisse)Events (Ereignisse)

Jedes Event hat ArgumenteJedes Event hat ArgumenteStandard: Standard: EventArgsEventArgs

Spezielle Argumentklassen sind möglichSpezielle Argumentklassen sind möglich

Eigene Argumentklassen sind auch Eigene Argumentklassen sind auch möglichmöglich

Eigene Klasse durch Ableitung von der Eigene Klasse durch Ableitung von der Klasse Klasse EventArgsEventArgs

Eigene EventArgs-Klasse wird im Eigene EventArgs-Klasse wird im Delegate angegebenDelegate angegeben

Page 28: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

AgendaAgenda

Übungsaufgabe Teil 8Übungsaufgabe Teil 8

ZeichenkettenZeichenketten

DelegatesDelegates

EventsEvents

ÜbungsaufgabeÜbungsaufgabe

ZusammenfassungZusammenfassung

Page 29: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ÜbungsaufgabeÜbungsaufgabe

Schreiben Sie ein Programm, welches Schreiben Sie ein Programm, welches eine „horizontale“ Balkengrafik eine „horizontale“ Balkengrafik darstellen kanndarstellen kann

Die Höhe der Balken liegt in einem Die Höhe der Balken liegt in einem Integer ArrayInteger Array

ACHTUNG: Max. Länge des Balkens muss ACHTUNG: Max. Länge des Balkens muss berücksichtigt werden (Breite des berücksichtigt werden (Breite des Fensters)Fensters)

Die Balkenerzeugung und –verwaltung Die Balkenerzeugung und –verwaltung soll in einer eigenen Klasse soll in einer eigenen Klasse implementiert werdenimplementiert werden

Das verwendete Zeichen für die Balken Das verwendete Zeichen für die Balken soll frei wählbar seinsoll frei wählbar sein

Page 30: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ÜbungsaufgabeÜbungsaufgabe

Sonstige Features:Sonstige Features:Links neben dem Balken soll die Höhe Links neben dem Balken soll die Höhe ausgegeben werdenausgegeben werden

Die Balkendaten sollen von der Tastatur Die Balkendaten sollen von der Tastatur eigelesen werdeneigelesen werden

Implementieren Sie eine SortierroutineImplementieren Sie eine Sortierroutine

AussehenAussehen25:xxxxxxxxxxxxxxxxxxxxxxxxx18:xxxxxxxxxxxxxxxxxx 5:xxxxx 7:xxxxxxx12:xxxxxxxxxxxx

Page 31: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

AgendaAgenda

Übungsaufgabe Teil 8Übungsaufgabe Teil 8

ZeichenkettenZeichenketten

DelegatesDelegates

EventsEvents

ÜbungsaufgabeÜbungsaufgabe

ZusammenfassungZusammenfassung

Page 32: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

ZusammenfassungZusammenfassung

Strings sind ein sehr mächtiges Strings sind ein sehr mächtiges WerkzeugWerkzeug

Werden in jedem Programm verwendetWerden in jedem Programm verwendet

Delegates und Events ermöglichenDelegates und Events ermöglichenFlexible ProgrammeFlexible Programme

Sehr wichtig beispielsweise bei Sehr wichtig beispielsweise bei BenutzerschnittstellenBenutzerschnittstellen

Page 33: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Nächster TerminNächster Termin

VB.NET für Einsteiger und Umsteiger, Teil VB.NET für Einsteiger und Umsteiger, Teil 1010

Die erste, eigene KlassenbibliothekDie erste, eigene KlassenbibliothekMontag, 12.02.2007 16:00-17:00 UhrMontag, 12.02.2007 16:00-17:00 Uhr

Page 34: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Referenzen & DownloadsReferenzen & Downloads

String-KlasseString-Klassehttp://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/system.string(VS.80).aspx system.string(VS.80).aspx

Übersicht über FormatierungÜbersicht über Formatierunghttp://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/26etazsy(VS.80).aspx26etazsy(VS.80).aspx

Behandeln und Auslösen von EreignissenBehandeln und Auslösen von Ereignissenhttp://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/edzehd2t(VS.80).aspxedzehd2t(VS.80).aspx

Ereignisse und DelegatenEreignisse und Delegatenhttp://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/17sde2xt(VS.80).aspx17sde2xt(VS.80).aspx

Page 35: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Referenzen & DownloadsReferenzen & Downloads

Microsoft Visual Basic 2005 - Das Microsoft Visual Basic 2005 - Das EntwicklerbuchEntwicklerbuch

http://www.edv-buchversand.de/mspress/http://www.edv-buchversand.de/mspress/product.asp?cnt=product&id=ms-537&lng=0product.asp?cnt=product&id=ms-537&lng=0

MSDN Solve, Antworten für EntwicklerMSDN Solve, Antworten für Entwicklerhttp://msdn-solve.de/http://msdn-solve.de/

Page 36: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater

Questions and AnswersQuestions and Answers

Daniel [email protected] http://blogs.msdn.com/walzenbach

Page 37: MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater