O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

C# von Kopf bis Fuß, 3rd Edition

Book Description

Dieses Standardwerk aus der beliebten „von Kopf bis Fuß“-Reihe nimmt den Leser auf eine Erlebnistour durch C#, bei der sowohl seine beiden Gehirnhälften als auch seine Lachmuskeln stimuliert werden. C# von Kopf bis Fuß ist ein unterhaltsames und visuell ansprechendes Arbeitsbuch für die objektorientierte Programmierung mit C# und der Visual Studio IDE. In der 3. Auflage deckt es C# 5 und das .NET Framework 4.5 ab. Behandelt werden alle zentralen Themen, von den Sprachgrundlagen bis zur Garbage Collection, den Erweiterungsmethoden und Animationen mit Double-Buffering. Der Leser lernt außerdem, wie er die Syntax von C# und die Abfrage von Datenquellen mit LINQ meistert. Neu aufgenommen wurden zwei Kapitel zur App-Programmierung; u.a. wird exemplarisch eine Windows Phone App entwickelt. Wer dieses Buch durchgearbeitet hat, ist ein kompetenter C#-Programmierer, der umfangreiche Anwendungen entwerfen und programmieren kann.

Table of Contents

  1. C# von Kopf bis Fuß
  2. Hingabe
  3. Autoren
    1. Über den Übersetzer dieses Buchs
  4. Andere Bücher über O'Reilly
  5. Wie man dieses Buch benutzt: Einführung
    1. Für wen ist dieses Buch?
      1. Wer sollte eher die Finger von diesem Buch lassen?
    2. Wir wissen, was Sie gerade denken.
    3. Und wir wissen, was Ihr Gehirn gerade denkt.
    4. Metakognition: Nachdenken übers Denken
    5. Das haben WIR getan:
    6. Und das können SIE tun, um sich Ihr Gehirn untertan zu machen
    7. Was Sie für dieses Buch brauchen
      1. Was, wenn Sie kein Windows 8 haben und Visual Studio 2013 bei Ihnen nicht läuft
    8. Lies mich
    9. Die Fachgutachter
    10. Danksagungen
  6. 1. Erste Schritte mit C#: Apps im Handumdrehen
    1. Warum Sie C# lernen sollten
      1. Hier ist das, was die IDE automatisch für Sie erledigt ...
      2. Was Visual Studio und C# Ihnen bieten ...
    2. C# und die Visual Studio IDE erleichtern Ihnen eine Menge Dinge
    3. Was Sie in Visual Studio tun ...
    4. Was Visual Studio für Sie tut ...
    5. Angriff aus dem All!
    6. Nur Sie können die Erde retten
    7. Das werden Sie erstellen
    8. Beginnen wir mit einer leeren Anwendung
    9. Das Grid für Ihre Seite anpassen
    10. Dem Grid Steuerelemente hinzufügen
    11. Das Aussehen über Eigenschaften ändern
    12. Steuerelemente machen das Spiel funktionsfähig
    13. Sie haben die Bühne für das Spiel vorbereitet
    14. Was Sie als Nächstes tun werden
    15. Eine Methode, die etwas macht
      1. Nutzen Sie die IDE, um eigene Methoden zu erstellen
    16. Den Code für Ihre Methode einfügen
    17. Letzte Schritte und erste Ausführung
    18. Das haben Sie bislang getan
    19. Den Spielablauf mit Timern steuern
    20. Den Start-Button funktionsfähig machen
    21. Führen Sie das Programm erneut aus
    22. Fügen Sie Code ein, damit die Controls mit dem Spieler interagieren können
    23. Wenn Sie Menschen auf Feinde ziehen, endet das Spiel
    24. Jetzt ist das Spiel einsatzbereit
    25. Die Feinde zu Aliens machen
    26. Splashscreen und Kachel
    27. Die App veröffentlichen
    28. Nutzen Sie den Remote Debugger, um Ihre App auf einem anderen Rechner zu installieren
    29. Das Remote-Debugging starten
  7. 2. Es ist alles bloß Code: Unter der Motorhaube
    1. Wenn Sie das tun ...
    2. ... macht die IDE das
    3. Wo Ihre Programme herkommen
      1. Jedes Programm beginnt als Sammlung von Quellcodedateien.
      2. Erstellen Sie das Programm, um eine ausführbare Programmdatei zu erzeugen.
      3. Das .NET Framework stellt Ihnen die richtigen Werkzeuge für den Job.
      4. Ihr Programm läuft in der CLR.
    4. Die IDE hilft Ihnen beim Programmieren
    5. Anatomie eines Programms
      1. Schauen wir uns Ihren Code genauer an
    6. Zwei Klassen können im gleichen Namensraum sein
    7. Ihre Programme nutzen Variablen, um mit Daten zu arbeiten
      1. Variablen deklarieren
      2. Variablen variieren
      3. Sie müssen Variablen Werte zuweisen, bevor Sie sie verwenden
      4. Ein paar nützliche Typen
    8. C# nutzt vertraute mathematische Symbole
    9. Mit dem Debugger Variablen beobachten
    10. Mit Schleifen Aktionen wiederholen
      1. Nutzen Sie eine Codeschablone, um einfache for-Schleifen zu schreiben
    11. if/else-Anweisungen fällen Entscheidungen
    12. Eine App von null an aufbauen
    13. Die Buttons etwas tun lassen
    14. Bedingungen aufstellen und prüfen
    15. Windows Desktop-Apps lassen sich leicht erstellen
    16. Die App für Windows Desktop neu erstellen
    17. Ihre Desktop-App weiß, wo sie anfangen muss
    18. Sie können den Einstiegspunkt Ihres Programms ändern
      1. Und was ist passiert?
    19. Wenn Sie Dinge in der IDE ändern, ändern Sie auch Ihren Code
      1. Halt, halt! Was soll das heißen?
  8. 3. Objekte: Orientieren Sie sich!: Aufgabenspezifischer Code
    1. Wie Mark über sein Problem nachdenkt
    2. Wie Marks Navi über das Problem nachdenkt
    3. Die Methoden von Marks Navigator-Klasse
      1. Manche Methoden haben Rückgabewerte
    4. Nutzen Sie das Gelernte, um eine einfache Anwendung zu erstellen
    5. Was wir damit erreicht haben
    6. Mark hat eine Idee
      1. Er könnte drei verschiedene Navigator-Klassen erstellen ...
    7. Mark kann sein Problem mit Objekten lösen
    8. Sie nutzen eine Klasse, um ein Objekt zu erstellen
      1. Ein Objekt erhält seine Methoden von seiner Klasse
    9. Wenn Sie ein neues Objekt einer Klasse erstellen, bezeichnet man dieses als Instanz der Klasse
    10. Eine bessere Lösung ... dank Objekten!
      1. Theorie und Praxis
      2. Ein kleiner Tipp für die Codeübungen
    11. Eine Instanz nutzt Felder, um Dinge festzuhalten
      1. Methoden sind das, was ein Objekt macht. Felder sind das, was das Objekt weiß.
    12. Erstellen wir mal ein paar Instanzen!
    13. Objekte auf dem Speicher
      1. Sehen wir uns genauer an, was hier passiert ist:
    14. Was Ihr Programm im Kopf hat
    15. Sie können Klassen- und Methodennamen verwenden, um Ihren Code intuitiv zu machen
    16. Geben Sie Ihren Klassen eine natürliche Struktur
      1. Erstellen wir ein Klassendiagramm
    17. Klassendiagramme helfen Ihnen, Ihre Klassen auf sinnvolle Weise zu organisieren
    18. Eine Klasse für die Arbeit mit ein paar Typen erstellen
    19. Ein Projekt für die Jungs erstellen
    20. Erstellen Sie ein Formular zur Interaktion mit den Jungs
    21. Die Objektinitialisierung kann noch einfacher sein
    22. Ein paar Ideen zum Entwurf intuitiver Klassen
    23. Objekt-Kreuzworträtsel
    24. Objekt-Kreuzworträtsel, Lösung
  9. 4. Typen und Referenzen: Es ist 10:00. Wissen Sie, wo Ihre Daten sind?
    1. Der Typ einer Variablen bestimmt, welche Art Daten sie speichern kann
    2. Eine Variable ist wie ein Daten-to-go-Becher
    3. 10 Kilo Daten in einem 5-Kilo-Sack
    4. Auch eine Zahl der richtigen Größe können Sie nicht einfach irgendeiner Variablen zuweisen
      1. Was ist passiert?
    5. Wandeln Sie einen zu großen Wert um, passt C# ihn automatisch an
    6. Einige Umwandlungen macht C# automatisch
    7. Beim Aufruf einer Methode müssen die Variablen den Typen der Parameter entsprechen
    8. Den Kilometerrechner debuggen
    9. Einen Operator mit = kombinieren
    10. Auch für Objekte braucht man Variablen
    11. Mit Referenzvariablen auf Objekte ver weisen
    12. Referenzen sind wie Etiketten für Ihr Objekt
    13. Gibt es keine Referenzen mehr, holt die Müllabfuhr Ihr Objekt
    14. Typ-Kreuzworträtsel
    15. Mehrere Referenzen und ihre Nebenwirkungen
    16. Zwei Referenzen bedeuten ZWEI Möglichkeiten, die Daten eines Objekts zu ändern
    17. Ein Sonderfall: Arrays
      1. Nutzen Sie die Elemente in einem Array, als wären es gewöhnliche Variablen
    18. Arrays können auch einen Haufen Referenzvariablen speichern
    19. Willkommen beim Sandwich-Discount vom Strammen Max
    20. Objekte nutzen Referenzen, um zu kommunizieren
    21. Wohin noch kein Objekt gekommen ist
    22. Erstellen Sie ein Tippspiel
    23. Steuerelemente sind ganz gewöhnliche Objekte
    24. Typ-Kreuzworträtsel, Lösung
  10. I. C#-Workshop: Ein Tag beim Rennen
    1. 5. Kapselung: Alles zu zeigen, ist nicht immer richtig
      1. Kathrin ist Event-Managerin
      2. Was der Kostenrechner macht
      3. Sie werden ein Programm für Kathrin erstellen
      4. Kathrins Te stlauf
      5. Jede Option sollte einzeln berechnet werden
      6. Objekte werden leicht unabsichtlich missbraucht
      7. Kapselung bedeutet, dass man einige Daten in einer Klasse privat hält
      8. Nutzen Sie Kapselung, um den Zugriff auf die Methoden und Felder Ihrer Klassen zu steuern
      9. Aber ist das Feld WahrerName WIRKLICH geschützt?
      10. Auf private Felder und Methoden kann nur aus der Klasse selbst heraus zugegriffen werden
        1. Kapselung macht Ihre Klassen ...
        2. Marks Anwendung mangelt es an Kapselung
        3. Betrachten Sie Objekte als undurchsichtig
      11. Kapselung hält Ihre Daten rein
        1. Ein kurzes Kapselungsbeispiel
      12. Eigenschaf ten vereinfachen die Kapselung
      13. Eine Anwendung zum Testen der Klasse Bauer erstellen
      14. Automatische Eigenschaften
        1. Die Klasse Bauer vollständig kapseln
      15. Was ist, wenn wir den FutterMultiplikator ändern möchten?
      16. Initialisieren Sie private Felder mit einem Konstruktor
    2. 6. Vererbung: Der Stammbaum Ihres Objekts
      1. Kathrin plant auch Geburtstagsfeiern
      2. Wir brauchen eine Geburtstagsfeier-Klasse
        1. Das müssen wir tun:
      3. Party-Planer 2.0
      4. Eine Sache noch ... können Sie eine Gebühr von 100 € für Partys mit mehr als 12 Personen hinzufügen?
      5. Nutzen Ihre Klassen Vererbung, müssen Sie Ihren Code nur einmal schreiben
        1. Abendessen und Geburtstagsfeiern sind beides Partys
      6. Erstellen Sie Ihr Klassenmodell, indem Sie allgemein beginnen und immer spezifischer werden
      7. Wie würden Sie einen Zoo-Simulator ent werfen?
      8. Nutzen Sie Vererbung, um doppelten Code in Unterklassen zu vermeiden
      9. Unterschiedliche Tiere machen unterschiedliche Geräusche
        1. Überlegen Sie, was Sie überschreiben müssen
      10. Denken Sie daran, wie die Tiere gruppiert sind
      11. Die Klassenhierarchie erstellen
      12. Jede Unterklasse er weitert Ihre Basisklasse
        1. C# ruft immer die spezifischste Methode auf
      13. Erweiterungen geben Sie mit einem Doppelpunkt an
      14. Wir wissen, dass Vererbung die Felder, Eigenschaften und Methoden der Basisklasse den Unterklassen hinzufügt ...
        1. ... aber manche Vögel fliegen nicht!
      15. Eine Unterklasse kann Methoden überschreiben, um geerbte Methoden zu ändern oder zu ersetzen
      16. Überall dort, wo Sie die Basisklasse verwenden können, können Sie stat tdessen ein Unterklasse verwenden
        1. Code-Kandidaten:
        2. Ausgaben:
      17. Unterklassen können Oberklassenmethoden ausblenden
        1. Methoden ausblenden vs. Methoden überschreiben
        2. Nutzen Sie unterschiedliche Referenzen, um verborgene Methoden aufzurufen
        3. Nutzen Sie das Schlüsselwort new, wenn Sie Methoden ausblenden
      18. Nutzen Sie override und virtual, um Verhalten zu ändern
      19. Basisklassenzugriff über das Schlüsselwort base
      20. Hat die Basisklasse einen Konstruktor, braucht ihn die Unterklasse auch
        1. Der Basisklassenkonstruktor wird vor dem Unterklassenkonstruktor ausgeführt
      21. Jetzt können Sie die Arbeit für Kathrin abschließen!
      22. Bauen Sie eine Bienenstockver waltung
      23. Wie Sie die Bienenstockver waltung aufbauen werden
      24. Vererbungs-Kreuzworträtsel
      25. Er weitern Sie die Bienenver waltung mit Vererbung
      26. Vererbungs-Kreuzworträtsel, Lösung
    3. 7. Schnittstellen und abstrakte Klassen: Klassen, die Versprechen halten
      1. Kehren wir zu den Bienen zurück
        1. Viele Dinge bleiben gleich
      2. Mit Vererbung können wir Klassen für die unterschiedlichen Arten von Bienen erstellen
      3. Eine Schnittstelle sagt einer Klasse, dass sie bestimmte Methoden und Eigenschaften implementieren muss
      4. Schnittstellen definieren Sie mit dem Schlüsselwort interface
      5. NektarWache macht beides
      6. Klassen, die Schnittstellen implementieren, müssen ALLE Methoden der Schnittstelle einschließen
      7. Sammeln Sie Erfahrung im Umgang mit Schnittstellen
      8. Eine Schnittstelle können Sie nicht instantiieren, aber Sie können sie referenzieren
      9. Schnittstellenreferenzen funktionieren wie Objektreferenzen
      10. Mit »is« können Sie ermitteln, ob eine Klasse eine bestimmte Schnittstelle implementiert
      11. Eine Schnittstelle kann von einer anderen erben
        1. Klassen, die Schnittstellen implementieren, die von IArbeiterin erben, müssen die Methoden und Eigenschaften von IArbeiterin implementieren
      12. Eine RoboBiene kann die Arbeit von Arbeiterinnen erledigen und braucht keinen Honig
      13. is sagt, welchen Typ Ihr Objekt hat, as sagt dem Compiler, wie er es behandeln soll
      14. Eine KaffeeMaschine ist auch ein Gerät
      15. Umwandeln funktioniert mit Objekten und Schnittstellen
      16. Mit Downcasting können Sie Ihr Gerät wieder zu einer Kaffeemaschine machen
        1. Scheitert das Downcasting, liefert as null
      17. Upcasting und Downcasting funktionieren auch mit Schnittstellen
      18. Es gibt nicht nur public und private
      19. Zugriffsmodifizierer ändern die Sichtbarkeit
      20. Manche Klassen sollten nicht instantiiert werden
      21. Eine abstrakte Klasse ist vergleichbar mit einer Kreuzung aus normaler Klasse und Schnittstelle
      22. Manche Klassen sollten nicht instantiiert werden
        1. Lösung: Nutzen Sie eine abstrakte Klasse!
      23. Eine abstrakte Methode hat keinen Rumpf
      24. Kamingespräche
        1. Mehrdeutigkeiten vermeiden!
        2. Die vier Prinzipien der objektorientierten Programmierung
      25. Polymorphie bedeutet, dass ein Objekt viele verschiedene Formen annehmen kann
        1. Achten Sie in der nächsten Übung auf Polymorphie!
      26. Objekt-Kreuzworträtsel
      27. Objekt-Kreuzworträtsel, Lösung
    4. 8. Enums und Auflistungen: Daten in Massen speichern
      1. Gelegentlich sind Strings nicht gut genug, wenn es darum geht, Kategorien von Daten zu speichern
      2. Mit Enumerationen können Sie erlaubte Werte aufzählen
      3. Mit Enums können Zahlen über Namen repräsentiert werden
      4. Wir könnten einen Kartenstapel über ein Array repräsentieren
        1. ... aber was ist, wenn Sie mehr machen möchten?
      5. Die Arbeit mit Arrays ist nicht immer einfach
      6. Listen erleichtern das Speichern von Sammlungen ... jeder Art
      7. Listen sind flexibler als Arrays
      8. Listen schrumpfen und wachsen dynamisch
      9. Generische Auflistungen können beliebige Typen speichern
      10. Auflistungsinitialisierer funktionieren wie Objektinitialisierer
      11. Erstellen wir eine Liste mit Enten
        1. Hier ist der Initialisierer
      12. Listen sind leicht, aber SORTIEREN kann verzwickt sein
        1. Listen wissen, wie sie sich sortieren müssen
      13. Enten sortieren mit IComparable<Ente>
        1. CompareTo() vergleicht das Objekts mit einem anderen
      14. Mit IComparer sagen Sie Ihren Listen, wie sie sortieren sollen
      15. Erstellen Sie eine Instanz Ihrer Comparer-Klasse
        1. Mehrere IComparer-Implementierungen bedeuten mehrere Wege, Ihre Objekte zu sortieren
      16. Komplexe IComparer
      17. Die ToString()-Methode von Objekten überschreiben
      18. foreach aktualisieren, damit sich Enten und Karten selbst darstellen
        1. Der Klasse Karte eine ToString()-Methode geben
      19. Über IEnumerable ganze Listen upcasten
        1. Vögel zu einer einzigen Liste kombinieren
      20. Auch Sie können Methoden überladen
      21. Schlüssel und Werte speichern Sie in Wörterbüchern
      22. Die Dictionary-Funktionalität im Überblick
        1. Schlüssel und Wert können unterschiedliche Typen haben
      23. Ein Programm mit einem Wörterbuch erstellen
      24. Noch MEHR Auflistungstypen ...
        1. Generische Auflistungen sind ein wichtiger Teil des .NET Framework
      25. Eine Queue ist FIFO – First-in-First-out
      26. Ein Stack ist LIFO – Last-in-First-out
      27. Auflistungskreuzworträtsel
      28. Auflistungskreuzworträtsel, Lösung
    5. 9. Dateien lesen und schreiben: Speichere das Array, rette die Welt
      1. C# nutzt Streams, um Daten zu lesen und zu schreiben
      2. Verschiedene Streams lesen und schreiben verschiedene Dinge
        1. Was Sie mit einem Stream machen können:
      3. Ein FileStream schreibt Bytes in eine Datei
      4. Wie man Daten in eine Textdatei schreibt
      5. Der teuflische Plan des Fieslings
      6. Lesen und Schreiben mit zwei Objekten
      7. Daten können durch mehrere Streams laufen
      8. Öffnen Sie mit eingebauten Objekten Standarddialoge
        1. ShowDialog() öffnet einen Dialog
      9. Dialoge sind einfach ein weiteres .NET-Steuerelement
      10. Dialoge sind auch Objekte
      11. Mit den eingebauten Klassen File und Directory können Sie mit Dateien und Verzeichnissen arbeiten
        1. Dinge, die Sie mit einem File-Objekt tun können:
        2. Dinge, die Sie mit einem Verzeichnis tun können:
      12. Dateien mit vorgefertigten Dialogen öffnen und speichern
      13. IDisposable sorgt dafür, dass Ihre Objekte entsorgt werden
      14. Vermeiden Sie Dateisystemfehler mit using-Anweisungen
        1. Mehrere Objekte brauchen mehrere using-Anweisungen
      15. Ärger im Büro
        1. Können Sie Brian mit einem Programm helfen, das für ihn seine Ausreden ver waltet?
      16. Beim Schreiben von Dateien muss man in der Regel viele Entscheidungen treffen
      17. Wählen Sie Ihre Optionen mit einer switch-Anweisung
      18. Schreiben und lesen Sie mit switch Ihre Spielkarten in eine bzw. aus einer Datei
      19. Ein überladener Kartenstapel()-Konstruktor, der einen Kartenstapel aus einer Datei einliest
      20. Was bei der Serialisierung eines Objekts passiert
      21. Aber was genau IST der Zustand eines Objekts? Was muss gespeichert werden?
      22. Wird ein Objekt serialisiert, werden die Objekte, die es referenziert, ebenfalls serialisiert ...
      23. Mit Serialisierung können Sie ein ganzes Objekt auf einmal lesen oder schreiben
        1. Sie brauchen ein BinaryFormatter-Objekt
        2. Erstellen Sie jetzt einen Stream zum Schreiben und Lesen
      24. Soll eine Klasse serialisierbar sein, müssen Sie sie mit dem Attribut [Serializable] markieren
      25. Serialisieren und deserialisieren wir einen Kartenstapel
      26. .NET speichert Text in Unicode
      27. Mit byte-Arrays können Daten verschoben werden
      28. Binäre Daten schreiben Sie mit einem BinaryWriter
        1. Lesen Sie die Daten mit BinaryReader wieder ein
      29. Sie können serialisierte Dateien auch manuell lesen und schreiben
      30. Die Dateien an den Punkten ändern, an denen sie sich unterscheiden
      31. Die Arbeit mit Binärdateien kann kompliziert sein
      32. Mit Datei-Streams ein Hex-Dump-Programm erstellen
        1. Wie man einen Hex-Dump erstellt
        2. Mit Hex-Zahlen arbeiten
      33. StreamReader und StreamWriter reichen vollkommen aus
      34. Mit Stream.Read() Bytes aus einem Stream lesen
      35. Datei-Kreuzworträtsel
      36. Datei-Kreuzworträtsel, Lösung
  11. II. C#-Workshop: Die Suche
    1. 10. Windows Store-Apps mit XAML: Ihre Apps auf die nächste Stufe bringen
      1. Brian nutzt Windows 8
      2. Windows Forms nutzen einen Objektgraphen
      3. Den Objektgraphen mit der IDE erforschen
      4. Windows Store-Apps erstellen UI-Objekte mit XAML
      5. Ver wandeln Sie Go Fish! in eine Windows Store-App
      6. Das Seitenlayout setzt auf den Steuerelementen auf
      7. Zeilen und Spalten können sich an die Seitengröße anpassen
      8. App-Seiten mit dem Grid-System gestalten
      9. Datenbindung verbindet Ihre XAML-Seiten mit Ihren Klassen
        1. Kontext, Pfad und Bindung
        2. Bidirektionale Bindung kann die Quelleigenschaft lesen und schreiben
        3. Bindung an Auflistungen mit Obser vableCollection
        4. Bindung im Code (ganz XAML-frei)
      10. XAML-Steuerelemente können vieles enthalten
      11. Datenbindung für den Strammen Max
      12. Mit statischen Ressourcen Objekte im XAML deklarieren
      13. Objekte mit einer Datenvorlage anzeigen
      14. INotifyPropertyChanged benachrichtigt gebundene Objekte
      15. Lassen Sie MenüMacher Änderungen des Erstellungsdatums melden
    2. 11. Async, Await und Datenkontraktserialisierung: Entschuldigen Sie die Unterbrechung
      1. Brian hat Dateiprobleme
      2. Windows Store-Apps nutzen await
      3. Dateien schreiben und lesen Sie mit der Klasse FileIO
        1. Nutzen Sie Dateiwähler, um Dateipfade zu finden
      4. Ein etwas komplexerer Texteditor
      5. Ein Datenkontrakt ist eine abstrakte Definition der Daten Ihres Objekts
        1. Datenkontraktserialisierung nutzt XML-Dateien
      6. Dateien mit asynchronen Methoden suchen und öffnen
      7. KnownFolders hilft Ihnen beim Zugriff auf wichtige Ordner
      8. Der gesamte Objektgraph wird in XML serialisiert
      9. Schreiben Sie Typ-Objekte in den lokalen Ordner Ihrer App
      10. Den Typ-Serialisierer testen
      11. Mit einem Task eine asynchrone Methode aus einer anderen heraus aufrufen
      12. Erstellen Sie Brian eine neue Ausredeverwaltung
      13. Seite, Ausrede und Manager trennen
      14. Die Hauptseite für die Ausredeverwaltung
      15. Der Hauptseite eine App-Leiste hinzufügen
      16. Die Klasse Ausredeverwaltung
      17. Der Unterstützungscode für die Seite
    3. 12. Exception-Handling: Fehler-Prävention
      1. Brians Ausreden müssen mobil werden
        1. Aber das Programm funktioniert nicht
      2. Löst Ihr Programm eine Exception aus, erzeugt .NET ein Exception-Objekt
      3. Brians Code machte etwas Uner wartetes
      4. Alle Exception-Objekte erben von Exception
      5. Der Debugger hilf t Ihnen, Exceptions in Ihrem Code aufzuspüren und zu verhindern
      6. Nehmen Sie den Debugger, um herauszufinden, was genau das Problem in der Ausredeverwaltung ist
      7. Mist, der Code hat immer noch Probleme ...
      8. Exceptions mit try und catch behandeln
        1. Was passiert, wenn eine Methode gefährlich ist?
      9. Folgen Sie try/catch mit dem Debugger
      10. Nutzen Sie finally, wenn Sie Code haben, der IMMER ausgeführt werden soll
      11. Nutzen Sie das Exception-Objekt, um Informationen zum Problem zu erhalten
      12. Mehrere Typen von Exceptions mit mehreren Catch-Blöcken abfangen
      13. Eine Klasse löst eine Exception aus, eine andere fängt sie ab
      14. Bienen brauchen eine HonigLeerException
      15. Ein einfaches Mittel, um viele Probleme zu vermeiden: using gibt Ihnen try und finally kostenlos
      16. Exception-Vorsorge: Implementieren Sie IDisposable für eigene Aufräumarbeiten
      17. Der SCHLIMMSTE catch-Block: Kommentare
        1. Sie sollten Exceptions behandeln, nicht vergraben
      18. Vorübergehende Lösungen sind okay (vorübergehend)
      19. Einige einfache Gedanken zum Exception-Handling
      20. finally verschaff t Brian seinen Urlaub ...
        1. ... und auch im Büro sieht alles gut aus!
    4. 13. Captain Amazing Der Tod Des Objekts
      1. Ihre letzte Chance, etwas zu TUN ... der Finalisierer Ihres Objekts
      2. Wann GENAU läuft ein Finalisierer?
        1. Sie können .NET VORSCHLAGEN, dass es Zeit ist, den Müll einzusammeln
      3. Dispose() arbeitet mit using, Finalisierer mit der Garbage Collection
      4. Finalisierer dürfen nicht von der Stabilität abhängen
      5. Lassen Sie ein Objekt sich selbst in Dispose() serialisieren
      6. Ein Struct sieht aus wie ein Objekt ...
      7. ... ist aber nicht auf dem Heap
      8. Werte werden kopiert, Referenzen werden zugewiesen
      9. Structs sind Werttypen, Objekte sind Referenztypen
        1. Folgendes ist passiert ...
      10. Stack vs. Heap: mehr zum Speicher
      11. Mit Parametern Methoden mehrere Werte liefern lassen
      12. Mit dem Modifizierer ref Referenzen übergeben
      13. Mit optionalen Parametern Standardwerte setzen
      14. Nullbare Typen vertreten nicht existierende Werte
      15. Nullbare Typen machen Programme robuster
      16. Captain Amazing ... nicht ganz
      17. Er weiterungsmethoden fügen BESTEHENDEN Klassen neue Verhalten hinzu
      18. Einen elementaren Typ erweitern: string
    5. 14. Datenabfrage und App-Bau mit LINQ: Bekommen Sie Ihre Daten in den Griff
      1. Tim ist der größte Captain-Amazing-Fan ...
      2. ... aber seine Sammlung ist ein einziges Chaos
      3. LINQ kann Daten aus vielen Quellen ziehen
      4. .NET-Auflistungen sind bereits für LINQ eingerichtet
      5. LINQ vereinfacht Abfragen
      6. LINQ ist einfach, Ihre Abfragen sind das nicht immer
      7. Tim könnte unsere Hilfe gebrauchen
        1. Windows Store-Apps nutzen eine seitenbasierte Navigation
        2. Erforschen Sie die Seitennavigation mit der IDE
      8. Bauen Sie Tims App auf
      9. Mit dem Schlüsselwort new anonyme Typen erstellen
      10. LINQ ist vielseitig
      11. Neue Abfragen für Tims App
      12. LINQ kann Ergebnisse zu Gruppen zusammenfassen
      13. Tims Werte gruppieren
      14. Zwei Auflistungen in einer Abfrage mit join kombinieren
      15. Tim hat eine Menge Kohle gespart
      16. Daten mit semantischem Zoom navigieren
      17. Geben Sie Tims App semantischen Zoom
      18. Sie haben Tim große Freude bereitet
      19. Die Split App-Vorlage der IDE vereinfacht den Aufbau von Apps, die sich um die Navigation durch Daten drehen
    6. 15. Events und Delegates: Was Ihr Code macht, wenn Sie nicht gucken
      1. Möchten auch Sie, dass Ihre Objekte für sich selbst denken?
      2. Aber woher weiß ein Objekt, dass es reagieren soll?
      3. Wenn Events eintreten ... lauschen Objekte
        1. Sie wollen ETWAS mit einem Event TUN? Dann brauchen Sie einen Event-Handler!
      4. Ein Objekt setzt ein Event ab, andere lauschen darauf ...
      5. Dann behandeln andere Objekte das Event
      6. Die Punkte verbinden
        1. Nutzen Sie Standardnamen für Methoden zum Absetzen von Events
      7. Die IDE erzeugt Event-Handler automatisch
      8. Mit generischen Event-Handlern eigene Event-Typen definieren
        1. C# führt eine implizite Umwandlung durch, wenn Sie das Schlüsselwort new und den Typ weglassen
      9. Windows Forms nutzen viele verschiedene Events
        1. Ein Event, viele Handler
      10. Windows Store-Apps nutzen Events für die Abwicklung des Prozesslebenszyklus
        1. Erforschen Sie die Lebenszyklusver waltungs-Events mit der IDE
      11. Geben Sie Tims Comics eine Lebenszyklusverwaltung
      12. XAML-Steuerelemente nutzen Routing-Events
        1. IsHitTestVisible bestimmt, ob ein Element »visible« für Zeiger oder Maus ist
      13. Eine App zur Erforschung von Routing-Events
      14. Event-Sender mit Event-Empfängern verbinden
        1. »Wir werden uns mit Ihnen in Verbindung setzen.«
      15. Ein Delegate VERTRITT die eigentliche Methode
        1. Ein Delegate fügt Ihrem Projekt einen neuen Typ hinzu
      16. Delegates in Aktion
      17. Jedes Objekt kann ein öffentliches Event abonnieren ...
        1. ... aber das ist nicht immer richtig!
      18. Nutzen Sie Callbacks statt Events, um genau ein Objekt mit einem Delegate zu verbinden
      19. Callbacks nutzen Delegates, aber KEINE Events
      20. Callbacks und MessageDialog-Befehle
      21. Mit Delegates den Einstellungen-Charm von Windows nutzen
    7. 16. App-Entwurf mit dem MVVM-Muster: Tolle Apps, außen wie innen
      1. Die Von Kopf bis Fuß-Basketball-Liga braucht eine App
      2. Aber können sie sich über die Gestaltung einigen?
      3. Ent werfen Sie für die Datenbindung oder für die Arbeit mit Daten?
      4. MVVM berücksichtigt Bindung und Daten
      5. Mit dem MVVM-Muster die Basketball-App angehen
      6. Eigene Steuerelemente erstellen
      7. Der Schiri braucht eine Stoppuhr
      8. MVVM heißt: Den Zustand der App im Blick
      9. Das Model für die Stoppuhr-App
      10. Events informieren den Rest der App über Zustandsänderungen
      11. Den View für eine einfache Stoppuhr erstellen
      12. Das Stoppuhr-ViewModel
      13. Die Stoppuhr-App abschließen
      14. Konvertierer wandeln Werte für Bindungen automatisch um
      15. Konvertierer können mit unterschiedlichen Typen arbeiten
      16. Das Aussehen von Steuerelementen mit St yles ändern
        1. Styles können alle Steuerelemente eines bestimmten Typs ändern
      17. Visuelle Zustände lassen Steuerelemente auf Änderungen reagieren
      18. Mit DoubleAnimation double-Werte animieren
      19. Objekt werte mit Objektanimationen animieren
      20. Mit dem gleichen ViewModel eine analoge Stoppuhr gestalten
      21. UI-Steuerelemente können auch mit C#-Code instantiiert werden
      22. C# kann auch »echte« Animationen aufbauen
        1. Erstellen Sie ein Projekt und fügen Sie ihm die Bilder hinzu
      23. Das Bild mit einem Benutzersteuerelement animieren
      24. Lassen Sie die Bienen über die Seite fliegen
      25. Mit ItemsPanelTemplate Steuerelemente an ein Canvas binden
      26. Glückwunsch! (Aber Sie sind noch nicht fertig ...)
  12. III. C#-Workshop: Invaders
    1. 17. Bonusprojekt: Erstellen Sie eine Windows Phone-App
      1. Bienenalarm!
      2. Bevor Sie loslegen können ...
  13. A. Was übrig bleibt: Die Top 11 der Themen, die es nicht ins Buch geschafft haben
    1. 1. Der Windows Store hat einiges mehr zu bieten
    2. 2. Die Grundlagen
      1. Weitere Grundlagen ...
    3. 3. Namensräume und Assemblies
      1. ... was also haben wir da gemacht?
      2. Ein Programm auf der Kommandozeile erstellen
    4. 4. Mit BackgroundWorker das UI reaktiver machen
    5. 5. Die Klasse Type und GetType()
    6. 6. Gleichheit, IEquatable und Equals()
    7. 7. Mit yield return enumerierbare Objekte erzeugen
    8. 8. Umgestalten (Refactoring)
      1. Eine Methode extrahieren
      2. Eine Variable umbenennen
      3. Eine Testbedingung konsolidieren
    9. 9. Anonyme Typen und Methoden sowie Lambda-Ausdrücke
    10. 10. LINQ to XML
      1. XML-Dateien laden und speichern
      2. Ihre Daten abfragen
      3. Daten aus einem RSS-Feed lesen
    11. 11. Windows Presentation Foundation
      1. Die meisten WPF-Projekte können Sie auch erstellen, wenn Sie kein Windows 8 haben.
    12. Wussten Sie, dass Sie mit C# und dem .NET Framework ...
  14. Stichwortverzeichnis
  15. Impressum