Upload
florenz-abert
View
108
Download
0
Embed Size (px)
Citation preview
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
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
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
AgendaAgenda
Übungsaufgabe Teil 8Übungsaufgabe Teil 8
ZeichenkettenZeichenketten
DelegatesDelegates
EventsEvents
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Ü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
Demonstration #1Demonstration #1
demodemo
Übungsaufgabe, Teil 8Übungsaufgabe, Teil 8
AgendaAgenda
Übungsaufgabe Teil 8Übungsaufgabe Teil 8
ZeichenkettenZeichenketten
DelegatesDelegates
EventsEvents
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
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
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)
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
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
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)
Demonstration #2Demonstration #2
demodemo
StringsStrings
AgendaAgenda
Übungsaufgabe Teil 8Übungsaufgabe Teil 8
ZeichenkettenZeichenketten
DelegatesDelegates
EventsEvents
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
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?
Demonstration #3Demonstration #3
demodemo
BubblesortBubblesort
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
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
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
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
Demonstration #4Demonstration #4
demodemo
DelegatesDelegates
Flexibler BubblesortFlexibler Bubblesort
AgendaAgenda
Übungsaufgabe Teil 8Übungsaufgabe Teil 8
ZeichenkettenZeichenketten
DelegatesDelegates
EventsEvents
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
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
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
Demonstration #5Demonstration #5
demodemo
EventsEvents
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
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
AgendaAgenda
Übungsaufgabe Teil 8Übungsaufgabe Teil 8
ZeichenkettenZeichenketten
DelegatesDelegates
EventsEvents
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Ü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
Ü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
AgendaAgenda
Übungsaufgabe Teil 8Übungsaufgabe Teil 8
ZeichenkettenZeichenketten
DelegatesDelegates
EventsEvents
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
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
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
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
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/
Questions and AnswersQuestions and Answers
Daniel [email protected] http://blogs.msdn.com/walzenbach