![Visual C# 2005 - Einstieg für Anspruchsvolle Visual C# 2005 - Einstieg für Anspruchsvolle](/img/books/width167/382732324X_k.jpg)
Visual C# 2005 - Einstieg für Anspruchsvolle
von: Dirk Frischalowski
Addison-Wesley Verlag, 2006
ISBN: 9783827323248
Sprache: Deutsch
545 Seiten, Download: 5701 KB
Format: PDF, auch als Online-Lesen
Inhaltsverzeichnis | 6 | ||
Vorwort | 18 | ||
1 Einleitung | 20 | ||
1.1 Das .NET Framework | 20 | ||
1.1.1 Die Common Language Runtime (CLR) | 21 | ||
1.1.2 Common Type System (CTS) | 22 | ||
1.1.3 Common Language Specification | 23 | ||
1.1.4 Microsoft Intermediate Language | 23 | ||
1.1.5 Just In Time Compiler | 24 | ||
1.1.6 Speicherverwaltung | 24 | ||
1.1.7 Die Klassenbibliothek | 25 | ||
1.1.8 Die Sprache C# | 26 | ||
1.2 Die Installation des .NET Framework | 27 | ||
1.3 Interessante Webseiten | 29 | ||
1.4 Übungsaufgaben | 29 | ||
2 Die erste C#-Anwendung | 30 | ||
2.1 Aufbau einer C#-Anwendung | 30 | ||
2.1.1 Erstellen des Sourcecodes | 31 | ||
2.1.2 Verwendung des C#-Compilers | 32 | ||
2.1.3 Ausführen der Anwendung | 34 | ||
2.2 Namespaces | 34 | ||
2.2.1 Namespaces einbinden | 35 | ||
2.2.2 Namespaces definieren | 35 | ||
2.3 Assemblies | 36 | ||
2.4 Beispielanwendungen verwenden | 38 | ||
2.4.1 Kommandozeile | 38 | ||
2.4.2 MSBuild | 39 | ||
2.4.3 Visual Studio | 39 | ||
2.5 Ein- und Ausgabe von Daten | 39 | ||
2.5.1 Ausgabe von Daten | 39 | ||
2.5.2 Einlesen von Daten | 40 | ||
2.5.3 Einlesen von Zahlenwerten | 41 | ||
2.6 Übungsaufgaben | 42 | ||
3 Visual C# 2005 Express Edition | 44 | ||
3.1 Einführung | 44 | ||
3.1.1 Allgemeines | 44 | ||
3.1.2 Versionen | 44 | ||
3.1.3 Installation | 45 | ||
3.2 Der erste Start | 48 | ||
3.2.1 Die Startseite | 48 | ||
3.2.2 Eine Konsolenanwendung erstellen | 49 | ||
3.2.3 Grundfunktionalität des Visual Studio | 51 | ||
3.2.4 Projektverwaltung | 53 | ||
3.2.5 Das Visual Studio konfigurieren | 54 | ||
3.3 Verwendung des Text-Editors | 56 | ||
3.4 Windows-Anwendungen | 57 | ||
3.4.1 Eine Windows-Anwendung erstellen | 57 | ||
3.5 Hilfe verwenden | 59 | ||
3.6 Übungsaufgaben | 61 | ||
4 Sprachgrundlagen | 62 | ||
4.1 Basiselemente | 62 | ||
4.1.1 Einführung | 62 | ||
4.1.2 Reservierte Wörter | 62 | ||
4.1.3 Bezeichner | 62 | ||
4.1.4 Kommentare | 64 | ||
4.1.5 Anweisungen und Anweisungsblöcke | 65 | ||
4.1.6 Gültigkeitsbereiche | 65 | ||
4.1.7 Allgemeiner Programmaufbau | 66 | ||
4.2 Variablen und Konstanten | 66 | ||
4.2.1 Variablen | 66 | ||
4.2.2 Konstanten | 67 | ||
4.3 Datentypen | 68 | ||
4.3.1 Wert- und Referenztypen | 68 | ||
4.3.2 Zeichenketten | 71 | ||
4.3.3 Explizite und implizite Datentypkonvertierung | 72 | ||
4.3.4 Überlaufprüfung mit checked und unchecked | 73 | ||
4.3.5 Boxing und Unboxing | 74 | ||
4.4 Ausdrücke und Operatoren | 76 | ||
4.4.1 Operatoren | 76 | ||
4.4.2 Ausdrücke | 77 | ||
4.5 Kontrollstrukturen | 77 | ||
4.5.1 if-else-Anweisung | 77 | ||
4.5.2 Bedingungsoperator | 79 | ||
4.5.3 switch-Anweisung | 79 | ||
4.5.4 for-Anweisung | 80 | ||
4.5.5 foreach-Anweisung | 82 | ||
4.5.6 while- und do-while-Anweisung | 83 | ||
4.5.7 Ablaufsteuerung durch break und continue | 84 | ||
4.5.8 goto-Anweisung | 85 | ||
4.6 Direktiven | 85 | ||
4.6.1 Bedingte Kompilierung | 86 | ||
4.6.2 Regionen | 87 | ||
4.6.3 Compiler-Meldungen konfigurieren | 88 | ||
4.7 Unsicherer Code | 89 | ||
4.8 Übungsaufgaben | 91 | ||
5 Objektorientierte Sprachgrundlagen | 92 | ||
5.1 Klassen und Objekte | 92 | ||
5.1.1 Klassen | 92 | ||
5.1.2 Objekte | 94 | ||
5.1.3 Klassen deklarieren | 95 | ||
5.2 Objekte erzeugen | 97 | ||
5.3 Strukturen | 100 | ||
5.4 Methoden | 102 | ||
5.4.1 Methoden ohne Parameterübergabe | 104 | ||
5.4.2 Methoden mit Parameterübergabe | 106 | ||
5.4.3 Methoden überladen | 109 | ||
5.4.4 Externe Methoden | 111 | ||
5.5 Konstruktoren und Destruktoren | 112 | ||
5.5.1 Konstruktoren | 112 | ||
5.5.2 Destruktoren | 115 | ||
5.6 Partielle Typdeklarationen | 116 | ||
5.7 Statische Klassen und Klassenelemente | 119 | ||
5.8 Überladen von Operatoren | 122 | ||
5.9 Übungsaufgaben | 124 | ||
6 Namespaces | 126 | ||
6.1 Namespaces deklarieren | 126 | ||
6.1.1 Einführung | 126 | ||
6.1.2 Verschachtelte Namespaces | 128 | ||
6.1.3 Syntax von Namespaces | 129 | ||
6.1.4 Namensgebung | 130 | ||
6.2 Namespaces einbinden | 130 | ||
6.2.1 Aliase | 131 | ||
6.3 Die using-Anweisung | 134 | ||
6.4 Übungsaufgaben | 135 | ||
7 Vererbung | 136 | ||
7.1 Grundprinzip | 136 | ||
7.1.1 Vererbung von Klassen | 138 | ||
7.1.2 Konstruktorverkettung | 140 | ||
7.2 Zugriff auf die Basisklasse und das eigene Objekt | 141 | ||
7.2.1 this | 141 | ||
7.2.2 base | 142 | ||
7.3 Zuweisungskompatibilität | 142 | ||
7.3.1 Typkompatibilität prüfen | 143 | ||
7.3.2 Sichere Typkonvertierung | 143 | ||
7.4 Methoden verdecken | 145 | ||
7.5 Polymorphie | 147 | ||
7.5.1 Methoden überschreiben | 147 | ||
7.5.2 Methoden versiegeln | 149 | ||
7.6 Die Klasse Object | 150 | ||
7.7 Abstrakte Klassen und Methoden | 153 | ||
7.8 Versiegelte Klassen | 156 | ||
7.9 Verschachtelte Klassen | 157 | ||
7.10 Übungsaufgaben | 159 | ||
8 Interfaces | 162 | ||
8.1 Grundprinzip | 162 | ||
8.2 Interfaces deklarieren | 163 | ||
8.2.1 Interfaces implementieren | 165 | ||
8.3 Explizite Interface-Deklaration | 168 | ||
8.4 Das Interface IDisposable | 170 | ||
8.5 Übungsaufgaben | 173 | ||
9 Aufzählungstypen | 174 | ||
9.1 Nutzen von Aufzählungstypen | 175 | ||
9.1.1 Syntax | 175 | ||
9.1.2 Basistyp des Aufzählungstyps setzen | 177 | ||
9.1.3 Die Struktur Enum | 177 | ||
9.2 Übungsaufgaben | 179 | ||
10 Arrays | 180 | ||
10.1 Eindimensionale Arrays | 180 | ||
10.2 Mehrdimensionale Arrays | 183 | ||
10.3 Verzweigte Arrays | 184 | ||
10.4 Parameterübergabe an Methoden | 186 | ||
10.5 Statische Methoden der Klasse Array | 187 | ||
10.6 Übungsaufgaben | 189 | ||
11 Zeichenkettenverarbeitung | 190 | ||
11.1 Einführung | 190 | ||
11.2 Die Klasse String | 190 | ||
11.2.1 Strings initialisieren | 190 | ||
11.2.2 Länge einer Zeichenkette ermitteln | 192 | ||
11.2.3 Zugriff auf einzelne Zeichen | 192 | ||
11.2.4 Weitere Operationen mit Zeichenketten | 192 | ||
11.2.5 Zeichenketten formatieren | 200 | ||
11.3 Die Klasse StringBuilder | 203 | ||
11.3.1 Anwendungsgebiet | 203 | ||
11.3.2 Verketten mit Append() | 204 | ||
11.3.3 Einfügen, Ersetzen oder Entfernen | 204 | ||
11.4 Übungsaufgaben | 205 | ||
12 Eigenschaften und Indexer | 206 | ||
12.1 Eigenschaften | 206 | ||
12.1.1 Einführung | 206 | ||
12.1.2 Asymmetrischer Accessor-Zugriff | 209 | ||
12.1.3 Eigenschaften in Schnittstellen verwenden | 210 | ||
12.2 Indexer | 211 | ||
12.2.1 Einführung | 211 | ||
12.2.2 Indexer in Schnittstellen verwenden | 214 | ||
12.3 Übungsaufgaben | 215 | ||
13 Delegaten und Ereignisbehandlung | 216 | ||
13.1 Delegaten | 216 | ||
13.1.1 Rückrufmethoden | 219 | ||
13.1.2 Multicast-Delegaten | 220 | ||
13.1.3 Kontra- und Kovarianz | 222 | ||
13.1.4 Anonyme Methoden | 223 | ||
13.2 Ereignisse | 224 | ||
13.2.1 Ereignisse bereitstellen | 226 | ||
13.3 Übungsaufgaben | 228 | ||
14 Exception-Behandlung | 230 | ||
14.1 Einführung | 230 | ||
14.2 Exceptions behandeln | 231 | ||
14.2.1 Einsatz von try-catch-Blöcken | 233 | ||
14.2.2 Verarbeitung von Exceptions | 236 | ||
14.2.3 Eigenschaften und Methoden von Exceptions | 236 | ||
14.2.4 Exception-Klassen | 237 | ||
14.3 Exceptions auslösen | 238 | ||
14.3.1 Neue Exceptions auslösen | 238 | ||
14.3.2 Exceptions erneut auslösen | 238 | ||
14.3.3 Verschachtelte Exceptions | 239 | ||
14.4 Ressourcenschutz | 240 | ||
14.5 Eigene Exceptions definieren | 241 | ||
14.6 Übungsaufgaben | 243 | ||
15 Attribute | 244 | ||
15.1 Vordefinierte Attribute | 244 | ||
15.2 Eigene Attribute definieren | 249 | ||
15.2.1 Vorgehensweise | 249 | ||
15.2.2 Verwenden eigener Attribute | 251 | ||
15.2.3 Attributwerte auslesen | 251 | ||
15.3 Übungsaufgaben | 253 | ||
16 Collections | 254 | ||
16.1 Einführung | 254 | ||
16.1.1 Anwendungsbeispiele | 254 | ||
16.1.2 Übersicht der Collection-Schnittstellen | 255 | ||
16.2 Allgemeine Collections | 256 | ||
16.2.1 ArrayList | 256 | ||
16.2.2 Queue | 259 | ||
16.2.3 Stack | 260 | ||
16.2.4 Hashtable | 262 | ||
16.2.5 SortedList | 264 | ||
16.2.6 Eigene Sortierungen implementieren | 265 | ||
16.3 Spezialisierte Collections | 267 | ||
16.3.1 StringCollection | 267 | ||
16.3.2 StringDictionary | 267 | ||
16.3.3 OrderedDictionary | 267 | ||
16.3.4 NameValueCollection | 268 | ||
16.3.5 ListDictionary | 268 | ||
16.3.6 HybridDictionary | 268 | ||
16.3.7 CollectionsUtil | 268 | ||
16.4 Bit-Collections | 269 | ||
16.4.1 BitArray | 269 | ||
16.4.2 BitVector32 | 270 | ||
16.5 Aufzählbare Klassenelemente | 270 | ||
16.5.1 Enumeratoren | 270 | ||
16.5.2 Iteratoren | 271 | ||
16.5.3 Mehrere Iteratoren | 272 | ||
16.6 Übungsaufgaben | 273 | ||
17 Generische Typen | 274 | ||
17.1 Einführung | 274 | ||
17.2 Generische Typen | 275 | ||
17.3 Typparameter einschränken | 277 | ||
17.4 Generische Delegaten | 280 | ||
17.5 Generische Collections | 280 | ||
17.5.1 Einfache Elementlisten mit der Klasse List | 282 | ||
17.5.2 Sortierte Elementlisten mit der Klasse SortedList | 283 | ||
17.6 Übungsaufgaben | 284 | ||
18 Dateien, Verzeichnisse und Streams | 286 | ||
18.1 Dateien und Verzeichnisse bearbeiten | 287 | ||
18.1.1 Dateisysteminformationen | 287 | ||
18.1.2 Umgebungsinformationen | 289 | ||
18.1.3 Datei- und Verzeichnisoperationen | 291 | ||
18.2 Dateiinhalte bearbeiten | 296 | ||
18.2.1 Einfacher Stream-Zugriff | 299 | ||
18.2.2 Zugriff auf Binärdateien | 300 | ||
18.2.3 Zugriff auf Textdateien | 302 | ||
18.2.4 Gepufferter Dateizugriff | 305 | ||
18.3 Weitere Stream- und Dateifunktionen | 306 | ||
18.3.1 Verwenden von MemoryStreams | 306 | ||
18.3.2 Kompression | 307 | ||
18.3.3 Registry-Zugriff | 307 | ||
18.3.4 Überwachung von Datei- und Verzeichnisoperationen | 309 | ||
18.3.5 Isolierte Datenspeicherung | 311 | ||
18.4 Übungsaufgaben | 313 | ||
19 Assemblies | 314 | ||
19.1 Einführung | 314 | ||
19.1.1 Aufbau einer Assembly | 315 | ||
19.1.2 Module | 315 | ||
19.1.3 Manifest einer Assembly | 317 | ||
19.1.4 Verwendung des IL-Disassembler | 318 | ||
19.2 Klassenbibliotheken | 319 | ||
19.3 Friend-Assemblies | 321 | ||
19.4 Assembly konfigurieren | 322 | ||
19.5 Assemblies im GAC | 323 | ||
19.6 Assembly signieren | 325 | ||
19.6.1 Starke Namen vergeben | 325 | ||
19.6.2 Assembly mit Zertifikat signieren | 327 | ||
19.7 Übungsaufgaben | 328 | ||
20 Anwendungsweitergabe | 330 | ||
20.1 Einführung | 330 | ||
20.1.1 Bereitstellungsvarianten | 331 | ||
20.1.2 Die .NET Runtime | 331 | ||
20.2 XCopy-Bereitstellung | 333 | ||
20.3 ClickOnce | 333 | ||
20.3.1 Aufbau einer ClickOnce-Bereitstellung | 334 | ||
20.3.2 Bereitstellung über das Visual Studio | 335 | ||
20.4 Übungsaufgaben | 337 | ||
21 Konsolenanwendungen | 338 | ||
21.1 Die Klasse Console | 338 | ||
21.1.1 Ein- und Ausgabestreams | 338 | ||
21.1.2 Tastendruck entgegennehmen | 339 | ||
21.1.3 Eigenschaften des Konsolenfensters | 339 | ||
21.1.4 Der Cursor im Konsolenfenster | 340 | ||
21.2 Konsolenanwendungen mit Parametern und Rückgabewert | 343 | ||
21.3 Anwendungen über Batch-Dateien starten | 344 | ||
21.4 Übungsaufgaben | 345 | ||
22 Windows-Anwendungen | 348 | ||
22.1 Einführung | 348 | ||
22.2 Einfache Windows-Anwendungen | 349 | ||
22.2.1 GUI ohne den Forms-Designer entwickeln | 349 | ||
22.2.2 GUI mit dem Forms-Designer entwickeln | 351 | ||
22.3 Mit Formularen arbeiten | 355 | ||
22.3.1 Eigenschaften | 355 | ||
22.3.2 Methoden | 356 | ||
22.4 Zugriff auf Anwendungseigenschaften | 360 | ||
22.5 Steuerelemente verwenden | 361 | ||
22.6 Container | 364 | ||
22.7 Steuerelemente anordnen | 366 | ||
22.7.1 Steuerelemente hinzufügen | 366 | ||
22.7.2 Layoutgestaltung eines Fensters | 368 | ||
22.8 Ereignisse in Windows-Anwendungen | 371 | ||
22.9 Verwendung von Komponenten | 378 | ||
22.9.1 Beispiel Baumstrukturen | 378 | ||
22.9.2 Beispielanwendung | 379 | ||
22.10 Übungsaufgaben | 384 | ||
23 Dialoge und Menüs | 388 | ||
23.1 Standarddialoge | 388 | ||
23.2 Hinweisfenster | 389 | ||
23.3 Eigene Dialogfenster | 390 | ||
23.4 Menüs | 392 | ||
23.4.1 Hauptmenüs | 392 | ||
23.4.2 Kontextmenüs | 400 | ||
23.5 Symbolleisten | 401 | ||
23.6 Übungsaufgaben | 403 | ||
24 Grafikprogrammierung | 406 | ||
24.1 Einführung | 406 | ||
24.2 Bilder anzeigen | 406 | ||
24.3 Grafiken zeichnen | 409 | ||
24.3.1 Das Graphics-Objekt | 409 | ||
24.3.2 Zeichenstifte, Farben und Pinsel | 411 | ||
24.3.3 Zeichenmethoden | 414 | ||
24.3.4 Text ausgeben | 418 | ||
24.4 Verschiebung, Drehung, Größenänderung | 419 | ||
24.5 Darstellung der Grafikobjekte verbessern | 424 | ||
24.6 Übungsaufgaben | 426 | ||
25 Steuerelemente erstellen | 428 | ||
25.1 Einführung | 428 | ||
25.2 Nichtgrafische Steuerelemente | 429 | ||
25.3 Grafische Steuerelemente | 432 | ||
25.3.1 Zusammengesetzte Steuerelemente | 433 | ||
25.3.2 Steuerelemente erweitern | 434 | ||
25.3.3 Neue Steuerelemente erstellen | 434 | ||
25.4 Steuerelemente in die Toolbox einbinden | 438 | ||
25.5 Übungsaufgaben | 440 | ||
26 Dokumentationskommentare | 442 | ||
26.1 Einführung | 442 | ||
26.2 Verwendung der Kommentar-Tags | 445 | ||
26.3 Verwendung im Visual Studio | 447 | ||
26.4 Verarbeiten der XML-Datei | 448 | ||
26.5 Übungsaufgaben | 450 | ||
27 Threads | 452 | ||
27.1 Einfache Threads | 453 | ||
27.1.1 Datenübergabe an einen Thread | 455 | ||
27.1.2 Zeitgeber | 456 | ||
27.1.3 Übersicht über Methoden und Eigenschaften von Threads | 457 | ||
27.1.4 Thread-Zustände | 457 | ||
27.1.5 Auf einen Thread warten | 459 | ||
27.1.6 Threads unterbrechen und fortsetzen | 460 | ||
27.1.7 Hintergrund-Threads | 461 | ||
27.2 Synchronisation | 462 | ||
27.2.1 Einfache Sperren | 462 | ||
27.2.2 Monitore | 464 | ||
27.2.3 Mutexe | 465 | ||
27.2.4 Deadlocks | 466 | ||
27.3 Übungsaufgaben | 467 | ||
28 Netzwerkanwendungen | 468 | ||
28.1 Hilfsklassen | 468 | ||
28.2 Zugriff auf Daten aus dem Netzwerk | 471 | ||
28.2.1 Die Klasse WebClient | 471 | ||
28.2.2 Die Klassen WebRequest und WebResponse | 473 | ||
28.3 Socket-Verbindungen | 475 | ||
28.3.1 Die Klasse Socket | 477 | ||
28.3.2 Klassen TcpClient und TcpListener | 482 | ||
28.4 Übungsaufgaben | 484 | ||
29 Reflection | 486 | ||
29.1 Einführung | 486 | ||
29.1.1 Anwendungsgebiete | 486 | ||
29.1.2 Assemblies analysieren | 487 | ||
29.2 Assemblies dynamisch laden | 490 | ||
29.2.1 Dynamisches Laden | 491 | ||
29.2.2 Über Schnittstellen auf Typen in Assemblies zugreifen | 493 | ||
29.3 Übungsaufgaben | 495 | ||
30 XML | 496 | ||
30.1 Einführung | 496 | ||
30.2 Streambasierte XML-Verarbeitung | 498 | ||
30.2.1 XmlReader | 498 | ||
30.2.2 Validierung | 500 | ||
30.2.3 XmlWriter | 502 | ||
30.3 DOM-basierte XML-Verarbeitung | 505 | ||
30.3.1 XML-DOM-Klassen | 505 | ||
30.3.2 Lesen und Schreiben mit XmlDocument | 506 | ||
30.4 Selektion von XML-Daten über XPath | 508 | ||
30.5 Transformation von XML-Daten mittels XSLT | 509 | ||
30.6 Übungsaufgaben | 510 | ||
31 MSBuild | 512 | ||
31.1 MSBuild | 512 | ||
31.1.1 Aufruf von MSBuild | 513 | ||
31.1.2 Basisaufbau einer Projektdatei | 513 | ||
31.2 Targets | 514 | ||
31.3 Tasks | 515 | ||
31.3.1 Bedingungen | 516 | ||
31.3.2 Fehlerbehandlung | 517 | ||
31.4 ItemGroups | 517 | ||
31.4.1 Bedingungen | 518 | ||
31.4.2 Metadaten | 518 | ||
31.5 Eigenschaften | 519 | ||
31.6 Weitere Elemente | 521 | ||
31.7 Logger und Transformationen | 523 | ||
31.7.1 Logger | 523 | ||
31.7.2 Transformationen | 523 | ||
31.8 Eigene Tasks | 523 | ||
31.9 Übungsaufgaben | 526 | ||
Stichwortverzeichnis | 528 | ||
Mehr eBooks bei www.ciando.com | 0 |