Übersicht

Werbung
Dirk Louis, Thorsten Kansy, Shinja Strasser
Microsoft Visual C# 2012 – Das Entwicklerbuch
Dirk Louis, Thorsten Kansy, Shinja Strasser
Microsoft
Visual C# 2012 –
Das Entwicklerbuch
3
Dirk Louis, Thorsten Kansy, Shinja Strasser: Microsoft Visual C# 2012 – Das Entwicklerbuch
Copyright © 2013 by O’Reilly Verlag GmbH & Co. KG
Das in diesem Buch enthaltene Programmmaterial ist mit keiner Verpflichtung oder Garantie irgendeiner
Art verbunden. Autor, Übersetzer und der Verlag übernehmen folglich keine Verantwortung und werden
keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses
Programmmaterials oder Teilen davon entsteht. Die in diesem Buch erwähnten Software- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Marken und unterliegen als solche den gesetzlichen Bestimmungen. Der Verlag richtet sich im Wesentlichen nach den Schreibweisen der Hersteller.
Das Werk, einschließlich aller Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen
Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Die in den Beispielen verwendeten Namen von Firmen, Organisationen, Produkten, Domänen, Personen,
Orten, Ereignissen sowie E-Mail-Adressen und Logos sind frei erfunden, soweit nichts anderes angegeben
ist. Jede Ähnlichkeit mit tatsächlichen Firmen, Organisationen, Produkten, Domänen, Personen, Orten,
Ereignissen, E-Mail-Adressen und Logos ist rein zufällig.
Kommentare und Fragen können Sie gerne an uns richten:
Microsoft Press Deutschland
Konrad-Zuse-Straße 1
85716 Unterschleißheim
E-Mail: [email protected]
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
15 14 13
Druck-ISBN 978-3-86645-565-8, PDF-ISBN 978-3-84833-000-3
EPUB-ISBN 978-3-84830-025-9, MOBI-ISBN 978-3-84830-174-4
© 2013 O’Reilly Verlag GmbH & Co. KG
Balthasarstraße 81, 50670 Köln
Alle Rechte vorbehalten
Korrektorat: Kristin Grauthoff, Lippstadt
Fachlektorat: Uwe Thiemann, Möhnesee
Satz: Silja Brands, ActiveDevelop, Lippstadt (www.ActiveDevelop.de)
Layout: Gerhard Alfes, mediaService, Siegen (www.media-service.tv)
Umschlaggestaltung: Hommer Design GmbH, Haar (www.HommerDesign.com)
Gesamtherstellung: Kösel, Krugzell (www.KoeselBuch.de)
Übersicht
1
2
3
4
5
6
7
8
9
Einleitung .........................................................................................................................................
31
Teil A
Einführung in .NET 4.5 und Visual C# 2012......................................................................
35
Das .NET Framework....................................................................................................................
Visual Studio 2012 ........................................................................................................................
Die ersten Programme ................................................................................................................
Stilkonventionen ............................................................................................................................
101
Teil B
C#-Grundlagen .............................................................................................................................
107
Anatomie eines C#-Programms ...............................................................................................
Variablen, Daten und Typen ......................................................................................................
Operatoren und Ausdrücke .......................................................................................................
Ablaufsteuerung ............................................................................................................................
Arrays, Enumerationen und Strukturen .................................................................................
Teil C
Objektorientierte Programmierung in C#.........................................................................
10
11
12
13
14
15
Klassen ..............................................................................................................................................
Schnittstellen ..................................................................................................................................
Vererbung, Polymorphie und Klassen-Design ....................................................................
Indexer, Enumeratoren und Iteratoren ..................................................................................
Operatorenüberladung ...............................................................................................................
Ausnahmebehandlung ................................................................................................................
37
49
91
109
139
165
189
209
235
237
283
297
343
359
369
6
Übersicht
Teil D
Fortgeschrittenes C# ...................................................................................................................
16
17
18
19
20
21
22
23
Werttypen und Verweistypen ....................................................................................................
Namespaces, Gültigkeitsbereiche und Zugriffsschutz ......................................................
Delegaten und Ereignisse ...........................................................................................................
Attribute ............................................................................................................................................
C#-Generika ....................................................................................................................................
XML-basierte Dokumentierung ................................................................................................
Lambda-Ausdrücke .......................................................................................................................
Spracherweiterungen ...................................................................................................................
Teil E
Nützliche .NET-Klassen ..............................................................................................................
24
25
26
27
Strings und reguläre Ausdrücke ...............................................................................................
Streams, Dateien, XML und Serialisierung ............................................................................
Auflistungen ....................................................................................................................................
Datum, Mathematik und die Systemumgebung .................................................................
Teil F
Windows Presentation Foundation ......................................................................................
28
29
30
31
32
Einführung in WPF ........................................................................................................................
WPF-Fenster, -Seiten und -Steuerelemente..........................................................................
Drag & Drop, Drucken und andere weiterführende Techniken......................................
Grafik .................................................................................................................................................
XAML .................................................................................................................................................
Teil G
Windows Store-Apps ..................................................................................................................
33
34
35
36
Einführung in Windows Store-Apps ........................................................................................
Layouts und Steuerelemente .....................................................................................................
Spezielle Techniken .......................................................................................................................
Von der Idee zum Windows Store............................................................................................
387
389
423
435
453
461
489
507
517
535
537
575
619
641
663
665
701
745
769
785
801
803
829
867
903
7
Übersicht
Teil H
Multithreading..............................................................................................................................
37
38
39
Prozesse ...........................................................................................................................................
Thread-Programmierung ...........................................................................................................
Parallele Programmierung .........................................................................................................
Teil I
Datenbanken .................................................................................................................................
40
41
42
43
B
C
923
929
949
983
ADO.NET ..........................................................................................................................................
CLR-Programmierung mit dem SQL Server .........................................................................
1017
Teil J
WCF und LINQ ...............................................................................................................................
1031
Einführung in die WCF ................................................................................................................
LINQ ..................................................................................................................................................
Teil K
Anhänge ..........................................................................................................................................
A
921
985
1033
1057
1095
Schlüsselwörter ..............................................................................................................................
C#-Referenz ....................................................................................................................................
Debuggen mit Visual Studio .....................................................................................................
1097
Stichwortverzeichnis.....................................................................................................................
1137
Die Autoren .....................................................................................................................................
1171
1099
1115
Inhaltsverzeichnis
Einleitung ..................................................................................................................................................
31
Teil A
Einführung in .NET 4.5 und Visual C# 2012......................................................................
35
1
Das .NET Framework....................................................................................................................
Historie ..................................................................................................................................................
Bausteine des .NET Frameworks........................................................................................................
Common Language Infrastructure .............................................................................................
Common Language Runtime ......................................................................................................
Common Intermediate Language ...............................................................................................
Just-In-Time-Compiler ................................................................................................................
Assemblys ..............................................................................................................................................
Ausführungsmodell für Assemblys.............................................................................................
.NET Framework und die Windows Runtime..................................................................................
2
Visual Studio 2012 ........................................................................................................................
Visual Studio .........................................................................................................................................
Geschichte ......................................................................................................................................
Visual Studio 2012, .NET Framework 4.5 und C#....................................................................
Arbeiten in der Entwicklungsumgebung ...................................................................................
Die Projektverwaltung .........................................................................................................................
Übersicht ........................................................................................................................................
Projektmappen ..............................................................................................................................
Startprojekte, Verweise und Projektabhängigkeiten ................................................................
Eigene Projektvorlagen.................................................................................................................
Der Code-Editor...................................................................................................................................
Kleine Annehmlichkeiten ............................................................................................................
IntelliSense .....................................................................................................................................
using-Smarttag...............................................................................................................................
Umschließung................................................................................................................................
Codeausschnitte.............................................................................................................................
Umgestaltung.................................................................................................................................
37
39
40
40
40
41
42
43
45
47
49
50
50
51
51
58
59
59
64
67
68
68
70
72
72
73
74
10
Inhaltsverzeichnis
3
Erstellung ..............................................................................................................................................
MSBuild..........................................................................................................................................
Build-Konfigurationen.................................................................................................................
Konfiguration .......................................................................................................................................
Umgebungseinstellungen ............................................................................................................
Tools/Optionen.............................................................................................................................
Externe Tools einrichten..............................................................................................................
Fensterverwaltung ...............................................................................................................................
Die Andock-Hilfe..........................................................................................................................
Die Pinnnadel................................................................................................................................
Der IDE-Navigator .......................................................................................................................
Navigation.............................................................................................................................................
Suchen ............................................................................................................................................
Zur Definition wechseln ..............................................................................................................
Klassenansicht und Objektkatalog .............................................................................................
Aufrufhierarchie............................................................................................................................
Hilfe .......................................................................................................................................................
Übersicht........................................................................................................................................
Lokal oder Online .........................................................................................................................
Die Online-Hilfe ...........................................................................................................................
Die lokale Hilfe..............................................................................................................................
76
77
77
78
78
79
80
81
81
82
83
83
83
84
85
85
86
86
86
87
88
Die ersten Programme.................................................................................................................
91
92
95
Konsolenanwendungen.......................................................................................................................
GUI-Anwendungen.............................................................................................................................
4
5
Stilkonventionen.............................................................................................................................
Bezeichner.............................................................................................................................................
Konventionen .......................................................................................................................................
Blöcke ....................................................................................................................................................
101
102
103
105
Teil B
C#-Grundlagen ..............................................................................................................................
107
Anatomie eines C#-Programms ...............................................................................................
Programmaufbau .................................................................................................................................
Klassen............................................................................................................................................
Eintrittspunkt Main()...................................................................................................................
using-Direktive und Framework-Klassen ........................................................................................
Ein- und Ausgabe .........................................................................................................................
Kommentare..................................................................................................................................
109
110
111
112
114
114
116
Inhaltsverzeichnis
6
11
Dateien und Assemblys........................................................................................................................
Klassen und Dateien .....................................................................................................................
Dateien und Assemblys ................................................................................................................
Imperative Programmierung in C#....................................................................................................
Daten und Datentypen .................................................................................................................
Literale und Variablen ..................................................................................................................
Operatoren und Ausdrücke .........................................................................................................
Anweisungen..................................................................................................................................
Funktionen (Methoden)...............................................................................................................
Objektorientierte Programmierung in C# ........................................................................................
Wie sind OOP-Objekte beschaffen? ...........................................................................................
Objekte und Klassen .....................................................................................................................
Die Klasse als Zentrum der objektorientierten Programmierung..........................................
Konzepte, die auf der Klasse aufbauen.......................................................................................
Die Klasse als Funktionensammlung .........................................................................................
117
117
118
120
120
120
121
121
123
124
125
126
129
133
138
Variablen, Daten und Typen ......................................................................................................
139
140
140
140
141
144
144
147
147
148
149
150
150
151
152
153
155
157
158
158
160
161
161
162
163
Das C#-Datenmodell ...........................................................................................................................
Datenrepräsentation .....................................................................................................................
Typisierung ....................................................................................................................................
Wert- und Verweistypen..............................................................................................................
Erweiterbarkeit ..............................................................................................................................
Literale ...................................................................................................................................................
Variablen................................................................................................................................................
Definition .......................................................................................................................................
Initialisierung.................................................................................................................................
Eindeutige Zuweisung ..................................................................................................................
Gültigkeitsbereiche........................................................................................................................
Konstanten ............................................................................................................................................
Typen: Primitive Typen .......................................................................................................................
Der bool-Typ..................................................................................................................................
Ganzzahlige Typen........................................................................................................................
Gleitkommatypen..........................................................................................................................
Zeichen............................................................................................................................................
Der decimal-Typ............................................................................................................................
Typen: Definierbare Typen .................................................................................................................
Typen: Strings .......................................................................................................................................
Typumwandlung und Boxing .............................................................................................................
Implizite Typumwandlungen ......................................................................................................
Explizite Typumwandlungen.......................................................................................................
Boxing und Unboxing ..................................................................................................................
12
Inhaltsverzeichnis
7
Operatoren und Ausdrücke ........................................................................................................
Operatoren und Ausdrücke................................................................................................................
Klassifizierung nach Operanden.................................................................................................
Ausdrücke ......................................................................................................................................
Auswertungsreihenfolge .....................................................................................................................
Vorrang der Operatoren..............................................................................................................
Assoziativität der Operatoren .....................................................................................................
Operanden .....................................................................................................................................
Klammerung..................................................................................................................................
Nebeneffekte und andere Fallstricke!................................................................................................
Die arithmetischen Operatoren .........................................................................................................
Division und Modulo ...................................................................................................................
Inkrement und Dekrement .........................................................................................................
Die Zuweisungsoperatoren.................................................................................................................
Die relationalen Operatoren...............................................................................................................
Die logischen Operatoren...................................................................................................................
Die Bit-Operatoren..............................................................................................................................
Die Operatoren für die Typidentifizierung und -umwandlung ....................................................
Typidentifizierung ........................................................................................................................
Typumwandlung...........................................................................................................................
Sonstige Operatoren ............................................................................................................................
Datenzugriff...................................................................................................................................
checked und unchecked......................................................................................................................
Der new-Operator ........................................................................................................................
Der Bedingungsoperator ?:..........................................................................................................
Der ??-Operator ............................................................................................................................
Operatoren für nicht gesicherten Code .....................................................................................
8
Ablaufsteuerung ............................................................................................................................
Verzweigungen .....................................................................................................................................
Die einfache if-Anweisung ..........................................................................................................
Die if...else-Verzweigung .............................................................................................................
if...else-Ketten und -Verschachtelungen....................................................................................
Die switch-Verzweigung..............................................................................................................
Schleifen ................................................................................................................................................
Die while-Schleife .........................................................................................................................
Die do...while-Schleife..................................................................................................................
Die for-Schleife..............................................................................................................................
Die foreach-Schleife für Arrays und Auflistungen...................................................................
Sprunganweisungen.............................................................................................................................
Die continue-Anweisung.............................................................................................................
Die break-Anweisung...................................................................................................................
Die goto-Anweisung.....................................................................................................................
165
166
166
167
167
168
169
170
170
170
173
173
174
175
176
177
180
183
183
185
186
186
187
187
187
188
188
189
190
190
192
193
195
198
199
201
203
204
205
206
206
207
Inhaltsverzeichnis
9
10
Arrays, Enumerationen und Strukturen .................................................................................
13
Arrays.....................................................................................................................................................
Definition und Erzeugung ...........................................................................................................
Initialisierungslisten......................................................................................................................
System.Array ..................................................................................................................................
Mehrdimensionale Arrays ...........................................................................................................
Arrays von Arrays .........................................................................................................................
Enumerationen .....................................................................................................................................
Definition .......................................................................................................................................
Verwendung...................................................................................................................................
Enumerationen und switch..........................................................................................................
Die Klasse System.Enum ..............................................................................................................
Strukturen..............................................................................................................................................
Definition .......................................................................................................................................
Verwendung...................................................................................................................................
Unterschiede zwischen Strukturen und Klassen.......................................................................
209
210
210
213
213
222
226
228
228
229
230
230
232
232
233
234
Teil C
Objektorientierte Programmierung in C#.........................................................................
235
Klassen ..............................................................................................................................................
Die Klassendefinition ..........................................................................................................................
Zugriff auf Klasse steuern.............................................................................................................
Zugriff auf Member steuern.........................................................................................................
Spezielle Klassen ............................................................................................................................
Partielle Klassen.............................................................................................................................
Konstanten ............................................................................................................................................
Felder......................................................................................................................................................
Definition .......................................................................................................................................
Instanzfelder...................................................................................................................................
Statische Felder ..............................................................................................................................
Methoden ..............................................................................................................................................
Allgemeines ....................................................................................................................................
Instanzmethoden und this ...........................................................................................................
Statische Methoden.......................................................................................................................
Datenaustausch..............................................................................................................................
Rekursion........................................................................................................................................
Überladung.....................................................................................................................................
Eigenschaften ........................................................................................................................................
Konstruktoren.......................................................................................................................................
Klassen ohne selbst definierten Konstruktor ............................................................................
Der Standardkonstruktor.............................................................................................................
237
238
239
239
241
242
243
244
244
245
246
250
250
253
255
256
264
265
268
272
274
274
14
Inhaltsverzeichnis
11
Überladene Konstruktoren..........................................................................................................
Statische Konstruktoren...............................................................................................................
Destruktoren.........................................................................................................................................
Aufruf .............................................................................................................................................
Eigener Destruktor .......................................................................................................................
Verschachtelte Typdefinitionen .........................................................................................................
274
275
277
277
278
280
Schnittstellen ...................................................................................................................................
283
284
285
286
287
288
288
289
290
292
294
Vertragsbasierte Programmierung ....................................................................................................
Modell 1: Schnittstellen-gestützte Methoden ...........................................................................
Modell 2: Schnittstellen als Labels für Klassen .........................................................................
Schnittstellen definieren .....................................................................................................................
Schnittstellen-Member.................................................................................................................
Schnittstellenvererbung ...............................................................................................................
Schnittstellen implementieren ...........................................................................................................
Die Dokumentation ist wichtig (IComparable-Beispiel) ........................................................
Schnittstellen-Member verbergen ..............................................................................................
Namenskonflikte in Schnittstellen lösen ..........................................................................................
12
Vererbung, Polymorphie und Klassen-Design .....................................................................
Vererbung..............................................................................................................................................
Das Prinzip der Vererbung..........................................................................................................
Geerbte Member ...........................................................................................................................
Die oberste Basisklasse Object ....................................................................................................
Vererbung über Assembly- und Sprachgrenzen hinweg ........................................................
Polymorphie .........................................................................................................................................
Grundprinzip und Implementierung.........................................................................................
Dynamische und statische Bindung...........................................................................................
Generische Programmierung......................................................................................................
Typidentifizierung zur Laufzeit ..................................................................................................
Abstrakte Klassen..........................................................................................................................
Der Klassen-Designer .........................................................................................................................
Klassendiagramme erzeugen.......................................................................................................
Klassendiagramme bearbeiten ....................................................................................................
Projekt-Dokumentationen erstellen...........................................................................................
Analyse-Spezifikationen umsetzen.............................................................................................
Projekte pflegen.............................................................................................................................
13
Indexer, Enumeratoren und Iteratoren ...................................................................................
Indexer...................................................................................................................................................
Syntax .............................................................................................................................................
Beispiel............................................................................................................................................
297
298
298
302
312
313
317
317
320
327
332
334
336
336
337
340
340
341
343
344
344
345
Herunterladen