E-Book, Deutsch, 747 Seiten
Reihe: Rheinwerk Computing
Wurm Schrödinger programmiert C#
4. Auflage 2024
ISBN: 978-3-367-10625-7
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection
Das etwas andere Fachbuch
E-Book, Deutsch, 747 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-367-10625-7
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection
Schrödinger ist unser Mann fürs Programmieren. Er kann schon was, aber noch nicht C#. Zum Glück hat er einen richtigen Profi an seiner Seite, der auf jede Frage eine Antwort weiß. Und weil Schrödinger zwar schlau ist, aber auch ein wenig ungeduldig, gibt es nach der nötigen Theorie immer sofort etwas zu tun. Mit viel Code und Beispielen, die du nicht wieder vergisst. Ob es ums Einparken ohne Crash geht oder um Schuhschränke, die immer größer werden: Die Übungen schafft ihr (aber nicht immer mit links), die Pausen sind verdient, und am Ende jedes Kapitels dürft ihr euch einen Spickzettel einstecken - Achievement Unlocked, Ready for Next Level. Fantastisch illustriert. Für Einsteiger, Umsteiger und Fans.
Aus dem Inhalt:
- Operatoren, Schleifen, Datentypen
- Klassen und Vererbung
- Wichtige Entwurfsmuster
- GUI-Entwicklung mit XAML
- LINQ einsetzen
- async/await geschickt verwenden
- Dateizugriffe und Streams
- Multithreading
- Internetzugriff
- Mit Fehlern und Ausnahmen umgehen
Bernhard Wurm ist Softwareentwickler aus Leidenschaft und kann sich noch sehr gut an seine ersten Programmierversuche erinnern. Er weiß, dass gute Nerven und Ausdauer genauso gefragt sind wie Neugierde und Spaß am logischen Denken. Auf jeden Fall hat ihn noch kein Programm in die Knie gezwungen; er studierte prompt Information Engineering und Management sowie Software Engineering. Inzwischen leitet er ein österreichisches Software-Unternehmen. Seine Interessen sind breit gestreut, aber immer computer-affin: Sie reichen von Distributed Computing über die digitale Bilderverarbeitung und Software-Architekturen bis hin zu den neuesten Technologien.
Autoren/Hrsg.
Weitere Infos & Material
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