C# ist eine der am meisten genutzten Programmiersprachen, doch wie den Ein- oder Umstieg schaffen? Genau dabei hilft Ihnen dieses Buch. Nachdem Sie sich zunächst die notwendigen Grundlagen erarbeitet haben, lernen Sie auch alles Notwendige über LINQ, XML und ADO. NET. Anschließend werden Sie sicher durch das Schreiben Ihrer ersten eigenen . NET-Anwendung geleitet. Noch nicht genug? Kapitel zu fortgeschrittenen . NET-Techniken wie die dynamische Programmierung oder die Task Parallel Library runden das Buch ab.
Inhaltsverzeichnis
Ü ber den Autor 11
Einleitung 23
Ü ber dieses Buch 23
Wie dieses Buch aufgebaut ist 24
Symbole, die in diesem Buch verwendet werden 26
Wie es weiter geht 27
Teil I: Los geht's 29
Kapitel 1 Grundlagen und Einfü hrung 31
Grundlagen der Programmierung 31
Warum programmieren wir eigentlich? 32
Programmiersprachen 33
. NET-Plattformarchitektur 37
Wie funktioniert eine . NET-Sprache? 39
Das . NET-Framework 42
Die Programmiersprache C# 44
Das Prinzip der objektorientierten Programmierung 44
Objekte und ihre Klassen 44
Abstraktion 47
Kapselung 48
Vererbung 48
Polymorphie 49
Kapitel 2 Entwicklungswerkzeuge und Tools 53
Ein Programm erstellen 53
Microsoft Visual Studio 2019 Community Edition 59
Ihr erstes eigenes Projekt 60
Der Marktplatz fü r fertige Lö sungen: NuGet 71
Kapitel 3 Das ABC der Sprache C# 75
Bezeichner 75
Namenskonventionen 76
Schlü sselwö rter 78
Anweisungen 79
Kommentare 79
Datentypen, Variablen und Konstanten 82
Deklaration von Variablen 84
Das Schlü sselwort var oder Typinferenz 86
Konstanten deklarieren 88
Zugriff und Verwendung von Variablen 89
Wert- und Referenztypen 90
Weitere Datentypen 97
Gü ltigkeitsbereiche von Variablen 100
Konvertieren von Datentypen 101
Was ist eine Methode? 110
Ü bergeben von Parametern 112
Methoden mit Rü ckgabewert 115
Methoden ohne Rü ckgabewert 117
Namensrä ume 119
Wo finde ich was? 121
Verwendung von Namensrä umen 122
Alias fü r einen Namensraum 124
Kapitel 4 Operatoren und Programmsteuerung 127
Operatoren 127
Rechenoperatoren 128
Zuweisungsoperatoren 132
Logische Operatoren 133
Den Programmablauf steuern: Verzweigungen und Kontrollstrukturen 136
if-Anweisung 137
switch-Anweisung und -Ausdruck 144
Vorgä nge wiederholen: Schleifen 148
for-Schleife 149
while-Schleife 151
do-while-Schleife 155
foreach-Schleife 157
Sie haben es sich anders ü berlegt? 158
Kapitel 5 Zeichenfolgen, Arrays und Datumswerte 161
Zeichen und Zeichenfolgen 161
String-Variablen deklarieren 162
String-Interpolation und kombinierte Formatierung 164
Zeichenfolgen analysieren 166
Zeichenfolgen manipulieren 168
Sonderzeichen in Zeichenfolgen 170
StringBuilder: Wenn Geschwindigkeit eine Rolle spielt 172
Formatierung von Zeichenfolgen 173
Arrays 178
Arrays deklarieren 179
Arrays erzeugen 179
Arrays initialisieren 180
Zugriff auf Array-Elemente 182
Eigenschaften und Methoden von Arrays 185
Datums- und Zeitberechnungen 188
Die DateTime-Struktur 188
Die TimeSpan-Struktur 192
Praxisbeispiele 193
Kapitel 6 Objektorientierte Programmierung mit C# 197
Klassen, Eigenschaften und Methoden 197
Klassen 198
Eigenschaften 198
Objekte 204
Methoden und Konstruktoren 205
Statische Klassen 207
Vererbung 210
Ober- und Unterklassen 210
Methoden ü berschreiben 212
Der Zugriff auf die Member der Basisklasse mit base 213
Abstrakte Klassen 214
Interfaces 216
Kapitel 7 Fehler passieren, macht aber nichts: Ausnahmebehandlung 221
Mit Ausnahmen umgehen 222
Wie man einen Fehler 'fä ngt'! 225
Der Parameter einer catch-Klausel 226
Ausnahmetypen 228
Fehler auslö sen 231
Eigene Fehlerklassen erstellen 232
Kapitel 8 Weitere Sprachfeatures 235
Delegates 235
Anonyme Methoden 239
Lambda-Ausdrü cke 240
Ereignisse - was geht ab? 242
Ereignisse registrieren und behandeln 243
Ereignisse verö ffentlichen 244
Generics - generische Datentypen 247
Generische Klassen, Methoden und Eigenschaften 248
Generische Auflistungen 251
Nette Helfer: Attribute 259
Sie wollen mehr? Erweiterungsmethoden 261
Teil II: Weitere Sprachfeatures von C# 265
Kapitel 9 Zugriffe auf das Dateisystem 267
Klassen fü r den Zugriff auf das Dateisystem 267
Arbeiten mit Verzeichnissen 269
Arbeiten mit Dateien 276
Nicht bei der Ausnahmebehandlung sparen! 280
Praxisbeispiele 282
Verzeichnisgrö ß e ermitteln 282
Kopieren von Verzeichnissen 284
Kapitel 10 Dateizugriff und Streams 287
Arbeiten mit Dateien 287
Text-Dateien erstellen, lesen und ä ndern 288
Arbeiten mit Streams 291
Lesen und Schreiben 293
Datei mit einem Stream schreiben 296
Komprimieren von Dateien mit . NET-Klassen 297
Neues ZIP-Archiv erzeugen 298
Alle Dateien eines ZIP-Archivs extrahieren 300
Objekte serialisieren 301
Im Binä rformat serialisieren 302
XML 306
JSON-Dateien 308
Kapitel 11 Asynchrone und parallele Programmierung 313
Grundlagen und Begrifflichkeiten 314
Asynchrone Programmiermuster 318
Programmieren mit Threads 318
Die TPL - Task Parallel Library 331
Ein gutes Team: async und await 342
Kapitel 12 Daten abfragenmit LINQ 349
LINQ-Grundlagen 349
Die Basis fü r LINQ-Abfragen 351
Abfragen mit LINQ 353
Die alternativen Schreibweisen von LINQ-Abfragen 358
Die wichtigsten Abfrageoperatoren 359
Ergebnis filtern (where-Operator) 359
Ergebnis sortieren (orderby-Operator) 362
Ergebnis partitionieren (skip- und take-Operator) 363
Doppelte Einträ ge lö schen (distinct-Operator) 365
Aggregat-Operatoren 366
Praxisbeispiele 367
CSV-Datei mit LINQ einlesen 367
Kapitel 13 Grundlagen von ADO. NET 371
Vorbereitungen 372
Installation der Datenbank 372
Beispieldaten importieren 374
Datenbankzugriffe mit ADO. NET 377
Verbindung zur Datenbank herstellen 378
Datensä tze abfragen 381
Datensä tze einfü gen 386
Datensä tze aktualisieren 388
Datensä tze lö schen 390
Das DataSet und der DataAdapter 392
Der DataAdapter -die Brü cke zu den Daten 393
Asynchrone Datenbankzugriffe 404
Teil III: Eine eigene C#-Anwendung schreiben 411
Kapitel 14 Fehlersuche und Softwarequalitä t 413
Welche Fehlerarten gibt es ü berhaupt? 414
Fehler zur Compiletime (Ü bersetzungszeit) 414
Fehler zur Runtime (Laufzeit) - Bugs 414
Der Debugger 415
Ein paar Grundlagen 415
Ü berprü fen von Code und Variablen zur Laufzeit 416
Ü berprü fen von Zeichenfolgen in der Schnellansicht 421
Anzeigen von Rü ckgabewerten einer Funktion 422
Attributed Debugging 423
Dem Fehler auf die Schliche kommen - der Stacktrace 425
Codequalitä t verbessern 427
Suchen Sie nach roten und grü nen Schlangenlinien 428
Achten Sie auf die Glü hbirne 430
Kapitel 15 Benutzeroberflä che mit Windows Forms 433
Grundgerü st einer Windows-Forms-Anwendung 434
Die Datei Program. cs 435
Die Dateien Form1. cs und Form1. Designer. cs 436
Benutzeroberflä che erstellen 439
Steuerelemente verwenden 440
Ereignisse von Steuerelementen 443
Windows-Forms-Anwendung: Ja oder Nein? 449
Kapitel 16 Moderne Oberflä chen mit WPF und XAML 451
Meine erste WPF-Anwendung 452
XAML -Extended Application Markup Language 454
Logischer und visueller Elementbaum in WPF 457
Layout in WPF 458
Ereignisse in WPF 470
Commands 473
Ressourcen in WPF 476
Ressourcen in separate Datei auslagern 479
Das gewisse Etwas: Styles 481
Was ist ein Style? 482
Templates 487
Databinding -die Benutzeroberflä che mit Daten versorgen 491
Die Richtung des Bindings: Wie Daten aktualisiert werden 493
Der UpdateSourceTrigger: Wann Daten aktualisiert werden 494
Teil IV: Fortgeschrittene Techniken in C# und WPF 497
Kapitel 17 Fortgeschrittene Techniken rund um die WPF 499
Das Beispielprogramm 499
Das MVVM-Entwurfsmuster 501
Das Model 503
Das ViewModel 503
Datenbeschaffung 510
Eigene Commands implementieren 511
Kapitel 18 Modulare Anwendung auf Basis von C# und WPF - ein Beispiel 517
Die Beispielanwendung 518
Vorbereitungen und Erstellung der Solution 520
Styling der Anwendung 524
Das Dependency-Injection-Entwurfsmuster 527
Dynamische Oberflä chen mit Prism-Regionen 529
Erstellung eines UserControls 533
Registrierung von Views 535
Erstellung eines Prism-Moduls 536
Anlegen des Projekts fü r das Modul 537
Erstellen der Benutzeroberflä che 538
Registrierung des Moduls 544
Austausch- und wiederverwendbare Komponenten 545
Registrierung und Verwendung der Klasse 547
Fazit -Was haben Sie jetzt gewonnen? 549
Teil V: Der Top-Ten-Teil 551
Kapitel 19 Zehn Dinge in C#, die Sie wirklich lernen und verwenden sollten! 553
Initialisierer fü r Objekte und Collections 553
Automatisch implementierte Eigenschaften initialisieren 554
null-coalescing Operator ? ? 555
String-Interpolation fü r dynamische Zeichenfolgen 555
Null-conditional Operator 556
nameof()-Ausdruck 557
is- und as-Operatoren 558
Zeichenfolgen mit String. IsNullOrEmpty() ü berprü fen 559
break- und continue-Anweisung 560
TryParse fü r die Umwandlung von Zeichenketten 561
Kapitel 20 Zehn nü tzliche Open-Source-Projekte 563
MahApps. Metro: Verpassen Sie Ihrer Anwendung den Metro-Style 563
Modern UI for WPF (MUI) 563
MaterialDesignInXamlToolkit 564
Extended WPF Toolkit(TM) 564
WPFLocalizationExtension 564
ResXManager 565
Prism 565
Sammlung von Erweiterungsmethoden 565
Modern UI Icons 566
Material Design Icons 566
Stichwortverzeichnis 567