290 likes | 403 Views
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 6 Schnittstellen (Interfaces) (Level 100). Presenter : Daniel Walzenbach Technologieberater Microsoft Deutschland GmbH daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach. Verlosung.
E N D
MSDN Webcast:VB.NET für Einsteiger und Umsteiger, Teil 6Schnittstellen (Interfaces)(Level 100) Presenter: Daniel Walzenbach Technologieberater Microsoft Deutschland GmbH daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach
Verlosung • Programmieren lernen mit Visual Basic 2005 • 10 Bücher werden unter allen Teil-nehmern verlost, die an mindes-tens sieben Webcasts teilnehmen
Visual Studio 2005 Express • Kleine Geschwister des Visual Studio 2005 • Kostenlos • http://www.microsoft.com/germany/msdn/vstudio/products/express/vb/default.mspx • Visual Basic 2005 Express Edition • Visual C# 2005 Express Edition • Visual C++ 2005 Express Edition • Visual Web Developer 2005 Express Edition • SQL Server 2005 Express Edition
Weihnachtswebcast - Frage 8 • In welchen Jahr wurde Microsoft gegründet? • 1995 Position 1 ein C • 1830 Position 13 ein S • Kurz bevor Windows kam Position 10 ein L • 1975 Position 2 und 10 ein I • Lösungswortbiseinschl. 13.12.2006 an MsdnXmas@microsoft.com
Agenda • Übungsaufgabe Teil 5 • Kombinierte Formatierung • Schnittstellen • Übungsaufgabe • Zusammenfassung
Übungsaufgabe, Teil 5 • Schreiben Sie eine Klasse, die alle Daten einer Person verwaltet • Name, Vorname, PLZ, Ort, Straße, Telefon • Überschreiben Sie die Methode ToString für die Ausgabe der Daten • Implementieren Sie Eigenschaften zum Setzen der Daten • Implementieren Sie eine einfache Prüfroutine für die PLZ (PLZ > 0und PLZ < 99999)
Demonstration #1 demo Übungsaufgabe, Teil 5
Agenda • Übungsaufgabe Teil 5 • Kombinierte Formatierung • Schnittstellen • Übungsaufgabe • Zusammenfassung
Kombinierte Formatierung • Werte in einem Text mit Platzhaltern einbetten • Alle Formatelemente (nullbasierend) weisen folgende Form auf: • Mehrere Formatelemente können auf dasselbe Element in der Werteliste verweisen • Jedes Formatelement kann auf einen beliebigen Parameter verweisen DimName AsString= "Daniel" Console.WriteLine("Hallo {0}!", Name) {Index[,Ausrichtung][:Formatzeichenfolge]}
Kombinierte Formatierung • Ausrichtung [optional] • Gibt die gewünschte formatierte Feldbreite an • Ist die Ausrichtung kleiner als die Länge der formatierten Zeichenfolge, wird diese ignoriert, ansonsten mit Leerzeichen aufgefüllt • Positiver Wert rechtsbündige Ausrichtung • Negativer Wert linksbündige Ausrichtung {Index[,Ausrichtung][:Formatzeichenfolge]} DimName AsString= "Daniel" Console.WriteLine("Hallo {0,10}!", Name) ' Hallo Daniel! 10 Zeichen
Kombinierte Formatierung • Formatzeichenfolge [optional] • Standardformatbezeichnern • benutzerdefinierten Formatbezeichnern • Doppelpunkt ist erforderlich • Ausrichtung und Formatzeichenfolgen können kombiniert werden {Index[,Ausrichtung][:Formatzeichenfolge]} Console.WriteLine("{0:X} ~ {0:E} ~ {0:N} ~ {0:C}", 255) ' FF ~ 2,550000E+002 ~ 255,00 ~ 255,00 € DimmyDouble AsDouble= System.Math.PI myDouble =String.Format("**{0,10:##.###}**", myDouble) ' ** 3,142** 10 Zeichen
Demonstration #2 demo Kombinierte Formatierung
Agenda • Übungsaufgabe Teil 5 • Kombinierte Formatierung • Schnittstellen • Übungsaufgabe • Zusammenfassung
Schnittstellen • Was sind Schnittstellen (= Interfaces)? • Schnittstellen definieren „Verhaltensweisen“ • Eine Schnittstelle ist ein Vertrag zwischen getrennten Codeteilen • Wenn eine Klasse eine Schnittstelle benutzt (implementiert) ist sichergestellt, dass die Klasse ALLE Methoden, Eigenschaften, … der Schnittstelle implementiert! • Die Schnittstelle darf nach der Veröffentlichung NICHT mehr geändert werden!
Schnittstellen • Deklaration wie Klassen jedoch mit leeren Methoden, Eigenschaften, … PublicInterfaceITier SubSpielen() EndInterface PublicClassHund ImplementsITier PublicSubSpielen() ImplementsITier.Spielen Console.WriteLine("Hund spielt.") EndSub EndClass PublicClassKatze ImplementsITier PublicSubSpielen()ImplementsITier.Spielen Console.WriteLine("Katze spielt.") EndSub EndClass
Demonstration #3 demo Schnittstellen
Schnittstellen • Die Klasse, welche die Schnittstelle implementieren soll, wird von der Schnittstelle „abgeleitet“ • Durch das Implementieren einer Schnittstelle ist sichergestellt, dass die Klasse alle Methoden, Eigenschaften, etc. der Schnittstelle implementiert • Ansonsten wirft der Compiler einen Fehler • Die Schnittstelle darf nach der Veröffentlichung NICHT mehr geändert werden!
Schnittstellen als Parameter • Bei Schnittstellen handelt es sich um vollwertige Typen • Können auch für die Deklaration einer Variablen oder als Parameter einer Prozedur verwendet werden ModuleModule1 SubMain() DimHasso AsNewHund TierSpielenLassen(Hasso) EndSub PublicSubTierSpielenLassen(ByValTier AsITier) Tier.Spielen() EndSub EndModule PublicInterfaceITier SubSpielen() EndInterface PublicClassHund ImplementsITier ' Implementierung von Hund EndClass
Demonstration #4 demo Schnittstellen als Parameter
Schnittstellen vs. Abstrakte Klassen • Schnittstellen enthalten ausschließlich Definitionen, abstrakte Basisklassen können einen Mix aus Definitionen und gemeinsamen Funktionscode enthalten • Eine Klasse kann mehrere Schnittstellen implementieren aber nur von einer Klasse erben. • Eine Schnittstelle kann von beliebig vielen anderen Schnittstellen erben
Agenda • Übungsaufgabe Teil 5 • Kombinierte Formatierung • Schnittstellen • Übungsaufgabe • Zusammenfassung
Übungsaufgabe • Schreiben Sie die zwei Klassen Amateurspieler und Profispieler • Beide Klassen sollen ein Interface ISpieler implementieren • Property SpielerName • Property Position • Methode Torschiessen • Schreiben Sie eine Methode welche die Namen, Position und geschossenen Tooooore der Spieler ausgibt
Agenda • Übungsaufgabe Teil 5 • Kombinierte Formatierung • Schnittstellen • Übungsaufgabe • Zusammenfassung
Zusammenfassung • Kombinierte Formatierung • {Index[,Ausrichtung][:Formatzeichenfolge]} • Interfaces • Vertrag zwischen getrennten Codeteilen • Stellen sicher, dass die enthaltenen Methoden, Properties, … in der Klasse, die das Interface implementiert, enthalten sind • Die Schnittstelle darf nach der Veröffentlichung NICHT mehr geändert werden!
Nächste Termine • VB.NET für Einsteiger und Umsteiger, Teil 7 • Strukturierte Ausnahmebehandlung • Montag, 11.12.2006 16:00-17:00 Uhr • VB.NET für Einsteiger und Umsteiger, Teil 8 • Arrays • Montag, 18.12.2006 16:00-17:00 Uhr
Referenzen & Downloads • ObjektorientiertesProgrammieren in Visual Basic • http://msdn2.microsoft.com/de-de/library/b86b82w0(VS.80).aspx • Class-Anweisung • http://msdn2.microsoft.com/de-de/library/wa0hwf23(VS.80).aspx • Vererbung in Visual Basic • http://msdn2.microsoft.com/de-de/library/5x4yd9d5(VS.80).aspx • Schnittstellen in Visual Basic • http://msdn2.microsoft.com/de-de/library/28e2e18x(VS.80).aspx
Referenzen & Downloads • Formatierung von Typen • http://msdn2.microsoft.com/de-de/library/fbxft59x(VS.80).aspx • KombinierteFormatierung • http://msdn2.microsoft.com/de-de/library/txafckwd(VS.80).aspx • Microsoft Visual Basic 2005 - Das Entwicklerbuch • http://www.edv-buchversand.de/mspress/product.asp?cnt=product&id=ms-537&lng=0 • MSDN Solve, AntwortenfürEntwickler • http://msdn-solve.de/
Questions and Answers Daniel Walzenbach daniel.walzenbach@microsoft.com http://blogs.msdn.com/walzenbach