Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Ein guter Start ist der halbe Sieg. Compiler und Entwicklungsumgebungen
25
Compiler und Compiler
26
Du brauchst eine IDE!
30
Der Spaß geht los!
32
Dein erstes Projekt
33
Theorie und Praxis
39
Was gelernt!
41
2 Ein netter Typ. Datentypen und deren Behandlung
43
Dieses Glas für diesen Wein
44
Grundlagen im Kamelreiten
48
Übungen für den Barkeeper
50
Rechnen mit Transvestiten
50
Alles nur Klone!
56
Ja oder nein?
57
Was gibt’s zu essen?
58
Das ständige Hin und Her zwischen ja und nein
60
Gut kommentieren!
61
Kommentare im Einsatz
62
Andere für sich denken lassen
62
Compiler-Spiele
63
Viele neue Freunde
64
3 Alles unter Kontrolle. Bedingungen, Schleifen und Arrays
65
Bedingungen
66
In der Kürze liegt die Würze
69
Durch Variationen bleibt es interessant
70
Der Herr der Fernbedienung
72
Ist noch Bier da?
74
Switch-Expressions
77
Pattern-Matching
78
Zwillinge
79
Zwillinge
79
Ein Schuhschrank muss her
82
Arbeiten in den Tiefen des Schuhschranks – von Kopf bis Fuß
83
Die ganze Welt ist Mathematik und aller guten Dinge sind vier
85
Schau’s dir an mit dem Debugger
86
Solange du nicht fertig bist, weitermachen …
87
Ich habe es mir anders überlegt
88
Oder mach doch weiter …
89
Zurück zu den Schuhschränken
90
Wenn aus einem Schuhschrank eine Lagerhalle wird
91
Wiederholung, Wiederholung!
93
Code muss man auch lesen können
94
Jetzt kommt das coole Zeug!
96
Arrays verbinden ab C# 12
100
Der Blick durchs Fenster
102
… oder einmal alles
103
4 Sexy Unterwäsche – von kleinen Teilen bis gar nichts. Strings, Characters und Nullable Types
105
Zeichenketten – Strings
106
Kleine Teile – einzelne Zeichen
107
Kleine und große Teile
108
Einfacher und schneller
109
Noch einfacher: Variablen im Text verwenden
112
Etwas Besonderes sollte es sein
113
Verdrehte Welt
114
Sein oder nicht sein?
117
Verweise auf nichts
120
Nichts im Einsatz
122
Damit bei so viel null nichts verloren geht
123
5 Eine endliche Geschichte. Enumerationen
125
Rot – Gelb – Grün
126
Tageweise
128
Tell me why I don’t like mondays …
131
WoW-Völker
132
Eine Mischung aus Zahlen und Arrays
134
Stimmungsbilder in der Praxis
137
Haltet das Banner hoch!
140
Auf wenige Sätze heruntergebrochen
143
6 Teile und herrsche. Methoden
145
Teilen statt Kopieren
146
Originale und überteuerte Kopien
149
Eins ist nicht genug
153
Wenn sich nichts bewegt und alles statisch ist
155
Ich hätte gerne das Original!
155
Sommerschlussverkauf – alles muss raus
156
Tauschgeschäfte, die nicht funktionieren
158
TryParse und Enums
159
Zum Schluss noch ganz kurz …
161
Ich will das ganz anders oder auch gar nicht – Methoden überladen
163
Das Ganze noch einmal umgerührt
166
Ein knurrender Magen spornt bestimmt zu Höchstleistungen an
168
Originale zurücksenden
169
Maximale Originale
171
Eine kleine Zusammenfassung für dich
172
7 Klassengesellschaft. Objekte, Eigenschaften und Sichtbarkeiten
173
Mein Alter, meine Augenfarbe, mein Geburtsdatum
174
Eine Aufgabe für den Accessor
178
Ich sehe was, was du nicht siehst
179
Eigenschaften aufpoliert und bereit für die Bühne
180
Tanzen mit Elvis – wenn keiner da ist, ist keiner da
182
Geheimniskrämerei und Kontrollfreak
183
Darf ich jetzt oder nicht?
184
Zusammen, was zusammengehört!
188
Zusammen und doch getrennt
190
Laufen, kämpfen, sterben
192
Vom Leben und Sterben
193
Geburtenkontrolle und detektivisches Talent
197
Mehrlingsgeburt
201
Partielle Klassen
204
Meine partiellen Daten
206
Gemeinsame Werte von dicken Freunden
207
Eigene Wertetypen
208
Strukturen überall
210
Strukturen ohne Namen
214
Ich habe viele Namen
216
Eigene Typen nochmals vom Sofa aus betrachtet
217
Die Nachteile der Wertetypen ausgetrickst
220
Gelernt ist gelernt!
223
8 Es wird Zeit für Übersicht! Namespaces
225
Eine Ordnung für die Klassen
226
Was ist denn nur in diesem Namespace vorhanden?
229
Vorhandene Systembausteine
231
Visual Studio findet die Namespaces für dich
234
Statische Klassen einbinden
234
Mathematik für Einsteiger
235
Zum Mitnehmen
236
9 Erben ohne Sterben. Objektorientierte Programmierung
237
Geisterstunde
238
Schleimgeister sind spezielle Geister
240
Fünf vor zwölf
242
Geister fressen, Schleimgeister fressen, Kannibalen fressen – alles muss man ­einzeln machen
248
Enterben
249
Geister haben viele Gestalten
249
Geister, die sich nicht an die Regeln halten
252
Gestaltwandler unter der Lupe
253
Nochmals drüber nachgedacht
254
Hier noch ein Merkzettel
258
10 Abstrakte Kunst. Abstrakte Klassen und Interfaces
259
Abstrakte Klassen
260
Unverstandene Künstler
262
Das Meisterwerk nochmals betrachtet
264
Abstrakte Kunst am Prüftisch
265
Allgemein ist konkret genug
267
Fabrikarbeit
268
Alles unter einem Dach
269
Kaffee oder Tee? Oder doch lieber eine Cola?
270
Kaffeemaschine im Einsatz
272
Eine Cola bitte
274
Freundin vs. Chef – Runde 1
276
Bei perfekter Verwendung …
277
Freundin vs. Chef – Runde 2
278
Freundin vs. Chef – Runde 3
280
Interfaces außer Rand und Band
281
In der Praxis: Mehr als nur Beschreibungen
282
Abstraktion und Interfaces auf einen Blick
287
11 Gleich und doch ganz anders. Records, der Star unter den eigenen Datentypen
289
Immutability – die Würfel sind gefallen
290
Orcs, Trolle und Elfen als Klassen, Strukturen und Records
293
12 Airbags können Leben retten. Exceptionhandling
297
Mach’s stabil!
298
Einen Versuch war es wert
300
Nur unter bestimmten Umständen
303
Fehler über Fehler
304
Über das Klettern auf Bäume
308
Klettern auf nicht vorhandene Bäume – NullReferenceException
308
Auf Sträucher klettern – FormatException
309
Sträucher im Sägewerk – ArgumentException
310
Bezahlung ohne Ware – ArgumentNullException
310
Bewusste Fehler
311
Selbst definierte Fehler
312
Fehler in freier Wildbahn
313
Das Matruschka-Prinzip
314
Alles noch einmal aufgerollt
316
Dein Fehler-Cheat-Sheet
320
13 Ein ordentliches Ablagesystem muss her. Collections und Laufzeitkomplexität
321
Je größer der Schuhschrank, desto länger die Suche
322
Komplizierte Laufschuhe
323
Geschwindigkeitsprognosen
326
Es muss nicht immer gleich quadratisch sein
328
Geschwindigkeitseinschätzung und Buchstabensuppe
330
Selbstwachsende Schuhschränke
334
Eine Array-Liste
335
Ringboxen
336
Listige Arrays und ihre Eigenheiten
337
Listige Arrays und ihre Verwendung
337
The Need for Speed
338
The Need for Speed
338
The Need for Speed
338
The Need for Speed
338
Es wird konkreter
339
Sortieren bringt Geschwindigkeit – SortedList
342
Listenreiche Arbeit
344
Es geht noch schneller!
346
Im Rausch der Geschwindigkeit
348
Alternative Initialisierungen
350
Wörterbücher in der Anwendung … oder was im Regelfall schiefgeht
351
Von Bäumen und Ästen
355
Ein Verwendungsbeispiel
356
Alles eindeutig – das HashSet
357
Schnelles Arbeiten mit Sets
358
Das große Bild
360
Der große Test, das Geheimnis und die Verwunderung
363
Noch einmal durchleuchtet
368
Dein Merkzettel rund um die Collections aus Laufzeiten
373
14 Allgemein konkrete Implementierungen. Generizität
375
Konkrete Typen müssen nicht sein
376
Das große Ganze
377
Mülltrennung leicht gemacht
378
Der Nächste bitte
381
Allgemein, aber nicht für jeden!
383
Immer das Gleiche und doch etwas anderes
385
Fabrikarbeit
387
Aus allgemein wird konkret
388
Hier kommt nicht jeder Typ rein.
389
Ähnlich, aber nicht gleich!
390
Varianzen hin oder her
392
Varianzen in der Praxis
395
WoW im Simulator
398
Damit’s auch hängen bleibt
400
15 Linke Typen, auf die man sich verlassen kann. LINQ
401
Shoppen in WoW
405
Gesund oder gut essen?
408
Listen zusammenführen
409
Fix geLINQt statt handverlesen
416
Merkzettel
420
16 Blumen für die Dame. Delegaten und Ereignisse
421
Ein Delegat übernimmt die Arbeit
422
Im Strudel der Methoden
425
Die Butlerschule
428
Die Wahl des Butlers
431
Ereignisreiche Tage
432
Eine Runde für alle
435
Auf in die Bar!
436
Wiederholung, Wiederholung
439
Die delegierte Zusammenfassung
442
17 Der Standard ist nicht genug. Extension-Methoden und Lambda-Expressions
443
Extension-Methoden
444
Auf die Größe kommt es an
448
Erweiterungen nochmals durchschaut
450
Softwareentwicklung mit Lambdas
452
Lambda-Expressions auf Collections loslassen
455
Ein Ausritt auf Lamas
456
Filtern
456
Gruppieren
458
Verknüpfen
459
Gruppieren und Verknüpfen kombiniert
460
Left Join
461
VerLINQte LAMbdAS
463
Lamas im Schnelldurchlauf
466
18 Die Magie der Attribute. Arbeiten mit Attributen
467
Die Welt der Attribute
468
Die Magie erleben
470
Das Ablaufdatum-Attribut
472
Die Magie selbst erleben
473
Eine magische Reise in dein Selbst
474
In den Tiefen des Kaninchenbaus
477
Der Attribut-Meister erstellt eigene ­Attribute!
480
Meine Klasse, meine Zeichen
482
Selbstreflexion
484
Die Psychologie lehrt uns: Wiederholung ist wichtig!
488
19 Ich muss mal raus. Dateizugriff und das Internet
489
Daten speichern
490
Rundherum oder direkt rein
491
Rein in die Dose, Deckel drauf und fertig
493
Deine Geheimnisse sind bei mir nicht sicher
494
Das Mysterium der Dateiendungen
497
Das Gleiche und doch etwas anders
500
Das Lexikon vom Erstellen, Lesen, Schreiben, ­Umbenennen
501
Ran an die Tastatur, rein in die Dateien
506
Von der Sandburg zum Wolkenkratzer
508
Fließbandarbeit
512
Wenn das Fließband nicht ganz richtig läuft
515
Dem Fließband vorgeschalteter Fleischwolf
519
Nutze die Attributmagie!
521
X(M)L entspricht XXL
522
Der Größenvergleich
523
Die kleinste Größe – JSON
524
Wir sind viele
525
Schru00F6dinger
529
Das World Wide Web. Unendliche Weiten
532
Deine Seite, meine Seite
534
Probe, Probe, Leseprobe
536
Punkt für Punkt fürs Hirn
538
20 Komm zurück, wenn du fertig bist. Asynchrone und parallele Programmierung
539
Zum Beispiel ein Download-Programm
540
Was so alles im Hintergrund laufen kann
547
Gemeinsam geht es schneller
549
Jetzt wird es etwas magisch
553
Wenn jeder mit anpackt, dann geht alles schneller
555
Rückzug bei Kriegsspielen
558
async/await/cancel
560
Unkoordinierte Koordination
562
Anders und doch gleich
567
Gemeinsam Kuchen backen
568
Wenn das Klo besetzt ist
573
Das Producer-Consumer-Problem
573
Dein Spickzettel
579
21 Nimm doch, was andere schon gemacht haben. Die Paketverwaltung NuGet
581
Bibliotheken für Code
582
Fremden Code aufspüren
585
Eigene NuGet-Pakete erstellen
588
Pakete statt Projekte
591
Die Welt ist schon fertig
592
22 Die schönen Seiten des Lebens. Einführung in XAML
593
Unendliche Weiten
594
Hinzufügen der Komponenten für MAUI-Apps in Visual Studio
597
Die MAUI-Architektur
598
Diese X-Technologien
600
Grundstruktur des Projekts
602
Ruf deine Freundin an
608
Layouthelferlein
612
Tabellen über Tabellen
613
Schrödingers Notizen
617
Das ist alles eine Stilfrage
631
Von der Seite in die Anwendung
633
Sonne, Strand und XAML
636
23 Models sind doch schön anzusehen. Das Model-View-ViewModel-Entwurfsmuster
639
Mein erstes eigenes Model
644
Eine Technik, sie alle zu binden!
648
Eine Eigenschaft für alle Infos
650
Wenn nur jeder wüsste, was er zu tun hätte
651
Los geht’s! Notify-Everybody
654
Ein Laufsteg muss es sein!
657
Über Transvestiten und Bindungsprobleme
666
Über Bindungsprobleme und deren Lösungen
667
Alleine oder zu zweit?
668
Aus Klein mach Groß und zurück
669
Klein aber fein
670
Notizen über Models
673
Auf mein Kommando
683
Dem Zufall das Kommando überlassen
689
MVVM Punkt für Punkt
694
24 Weniger ist mehr. MVVM Community Toolkit
695
Programmcode generieren lassen
696
Lass uns mal rechnen, aber möglichst ohne Aufwand
701
Das solltest du trotz Automatik noch wissen
710
25 Funktioniert das wirklich? Unit-Testing
715
Das Problem: Testen kann lästig werden
716
Die Lösung: Unit-Tests – Klassen, die Klassen testen
717
Das Testprojekt erstellen
720
Die Ausführung ist das A und O!
722
Spezielle Attribute
723
Unit-Tests sind nicht alles
723
Testgetriebene Softwareentwicklung – oder wie du Autofahren lernst
724
Darfst du schon fahren?
725
Let’s do it!
730
Dein Test-Merkzettel
731
26 Schrödingers Zukunft. Vorschau auf C# 13 und .NET9
733
Schrittweise verfeinert
733
Params für alle
734
Alles erweitern!
735
Lange Eigenschaften gekürzt
739
Neuerungen in LINQ
740
Warten auf Godot
742
Index
743