Book description
Schnappen Sie sich einen Stift, werfen Sie Ihren Rechner an und begeben Sie sich auf eine Erlebnistour durch C#, bei der sowohl Ihre beiden Gehirnhälften als auch Ihre Lachmuskeln stimuliert werden. C# von Kopf bis Fuß ist ein unterhaltsames und visuell ansprechendes Arbeitsbuch für die objektorientierte Programmierung mit C# 4.0 und dem Visual Studio 2010. Behandelt werden alle zentralen Themen, von den Sprachgrundlagen bis zur Garbage Collection, den Erweiterungsmethoden und Animationen mit Double-Buffering. Und Sie lernen auch die Abfrage von Datenquellen mit LINQ kennen. Wenn Sie dieses Buch durchgearbeitet haben, werden Sie ein kompetenter C#-Programmierer sein und umfangreiche Anwendungen entwerfen und programmieren können.
Table of contents
- C# von Kopf bis Fuß
- Die Autoren
- Über den Übersetzer dieses Buchs
-
Wie man dieses Buch benutzt: Einführung
- Für wen ist dieses Buch?
- Wer sollte eher die Finger von diesem Buch lassen?
- Wir wissen, was Sie gerade denken
- Und wir wissen, was Ihr Gehirn gerade denkt
- Metakognition: Nachdenken übers Denken
- Das haben WIR getan
- Und das können SIE tun, um sich Ihr Gehirn untertan zu machen
- Was Sie für dieses Buch brauchen
- Lies mich
- Die Fachgutachter
- Danksagungen
-
1. Prduktiv mit C#: Grafische Anwendungen in 10 Minuten und weniger
- Warum Sie C# lernen sollten
- C# und Visual Studio IDE erleichtern Ihnen eine Menge Dinge
- Verhelfen Sie Ihrem Chef zu einem papierlosen Büro
- Bringen Sie die Bedürfnisse Ihres Kunden in Erfahrung, bevor Sie anfangen, Ihr Programm zu erstellen
- Das werden Sie aufbauen
- Was Sie in Visual Studio tun ...
- Was Visual Studio für Sie macht ...
- Die Benutzerschnittstelle entwickeln
- Visual Studio hinter den Kulissen
- Den automatisch generierten Code ergänzen
- Sie können Ihre Anwendung bereits ausführen
- Wo sind meine Dateien?
- Das haben wir bisher gemacht
- Wir brauchen eine Datenbank zur Speicherung der Informationen
- Die IDE hat eine Datenbank erstellt
- SQL ist eine eigene Sprache
- Die Tabelle für die Kontaktliste erstellen
- Die Felder auf einer Adresskarte sind die Spalten in der Tabelle Personen
- Den Tabellenbau abschließen
- Ihre Kartendaten in die Datenbank einfügen
- Ihr Formular über eine Datenquelle mit Ihren Datenobjekten verbinden
- Dem Formular datenbankgesteuerte Steuerelemente hinzufügen
- Gute Programme sind intuitiv zu verwenden
- Testlauf
- Wie Sie IHRE Anwendung in eine Anwendung für ALLE verwandeln
- Ihren Nutzern die Anwendung geben
- Sie sind noch NICHT fertig: Testen Sie Ihre Anwendung
- Sie haben eine vollständige, datengesteuerte Anwendung erstellt
-
2. Es ist alles blß Cde: Unter der Motorhaube
- Wenn Sie das tun ...
- ... macht die IDE das
- Wo die Programme herkommen
- Die IDE hilft Ihnen beim Programmieren
- Wenn Sie Dinge in der IDE ändern, ändern Sie auch Ihren Code
- Anatomie eines Programms
- Ihr Programm weiß, wo es anfangen muss
- Sie können den Einstiegspunkt Ihres Programms ändern
- Zwei Klassen können im gleichen Namensraum sein
- Ihre Programme nutzen Variablen, um mit Daten zu arbeiten
- C# nutzt vertraute mathematische Symbole
- Mit dem Debugger Variablen beobachten
- Mit Schleifen Aktionen wiederholen
- Zeit, mit dem Programmieren zu beginnen
- if/else-Anweisungen fällen Entscheidungen
- Bedingungen aufstellen und prüfen
-
3. Objekte: Orientieren Sie sich!: Aufgabenspezifischer Code
- Wie Mark über sein Problem nachdenkt
- Wie Marks Navi über das Problem nachdenkt
- Die Methoden von Marks Navigator-Klasse
- Nutzen Sie das Gelernte, um eine einfache Anwendung zu erstellen
- Was wir damit erreicht haben
- Mark hat eine Idee
- Mark kann sein Problem mit Objekten lösen
- Sie nutzen eine Klasse, um ein Objekt zu erstellen
- Wenn Sie ein neues Objekt einer Klasse erstellen, bezeichnet man dieses als Instanz der Klasse
- Eine bessere Lösung ... dank Objekten!
- Eine Instanz nutzt Felder, um Dinge festzuhalten
- Erstellen wir mal ein paar Instanzen!
- Objekte auf dem Speicher
- Was Ihr Programm im Kopf hat
- Sie können Klassen- und Methodennamen verwenden, um Ihren Code intuitiv zu machen
- Geben Sie Ihren Klassen eine natürliche Struktur
- Klassendiagramme helfen Ihnen, Ihre Klassen auf sinnvolle Weise zu organisieren
- Eine Klasse für die Arbeit mit ein paar Typen erstellen
- Ein Projekt für die Jungs erstellen
- Erstellen Sie ein Formular zur Interaktion mit den Jungs
- Die Objektinitialisierung kann noch einfacher sein
-
4. Typen und Referenzen: Es ist 10:00. Wissen Sie, wo Ihre Daten sind?
- Der Typ einer Variablen bestimmt, welche Art Daten sie speichern kann
- Eine Variable ist wie ein Daten-to-go-Becher
- 10 Kilo Daten in einem 5-Kilo-Sack
- Auch eine Zahl der richtigen Größe können Sie nicht einfach irgendeiner Variablen zuweisen
- Wandeln Sie einen zu großen Wert um, passt C# ihn automatisch an
- Einige Umwandlungen macht C# automatisch
- Beim Aufruf einer Methode müssen die Variablen den Typen der Parameter entsprechen
- Einen Operator mit = kombinieren
- Auch für Objekte braucht man Variablen
- Mit Referenzvariablen auf Objekte verweisen
- Referenzen sind wie Etiketten für Ihr Objekt
- Gibt es keine Referenzen mehr, holt die Müllabfuhr Ihr Objekt
- Mehrere Referenzen und ihre Nebenwirkungen
- Zwei Referenzen bedeuten ZWEI Möglichkeiten, die Daten eines Objekts zu ändern
- Ein Sonderfall: Arrays
- Arrays können auch einen Haufen Referenzvariablen speichern
- Willkommen beim Sandwich-Discount vom Strammen Max
- Objekte nutzen Referenzen, um zu kommunizieren
- Wohin noch kein Objekt gekommen ist
- Erstellen Sie ein Tippspiel
-
I. C#-Workshop: Ein Tag beim Rennen
-
5. Kapselung: Alles zu zeigen, ist nicht immer richtig
- Kathrin ist Event-Managerin
- Was der Kostenrechner macht
- Kathrins Testlauf
- Jede Option sollte einzeln berechnet werden
- Objekte werden leicht unabsichtlich missbraucht
- Kapselung bedeutet, dass man einige Daten in einer Klasse privat hält
- Nutzen Sie Kapselung, um den Zugriff auf die Methoden und Felder Ihrer Klassen zu steuern
- Aber ist das Feld WahrerName WIRKLICH geschützt?
- Auf private Felder und Methoden kann nur aus der Klasse selbst heraus zugegriffen werden
- Kapselung hält Ihre Daten rein
- Eigenschaften vereinfachen die Kapselung
- Eine Anwendung zum Testen der Klasse Bauer erstellen
- Automatische Eigenschaften
- Was ist, wenn wir den FutterMultiplikator ändern möchten?
- Initialisieren Sie private Felder mit einem Konstruktor
-
6. Vererbung: Der Stammbaum Ihres Objekts
- Kathrin plant auch Geburtstagsfeiern
- Wir brauchen eine Geburtstagsfeier-Klasse
- Party-Planer 2.0
- Eine Sache noch ... können Sie eine Gebühr von 100 € für Partys mit mehr als 12 Personen hinzufügen?
- Nutzen Ihre Klassen Vererbung, müssen Sie Ihren Code nur einmal schreiben
- Erstellen Sie Ihr Klassenmodell, indem Sie allgemein beginnen und immer spezifischer werden
- Wie würden Sie einen Zoo-Simulator entwerfen?
- Nutzen Sie Vererbung, um doppelten Code in Unterklassen zu vermeiden
- Unterschiedliche Tiere machen unterschiedliche Geräusche
- Denken Sie daran, wie die Tiere gruppiert sind
- Die Klassenhierarchie erstellen
- Jede Unterklasse erweitert Ihre Basisklasse
- Erweiterung geben Sie mit einem Doppelpunkt an
- Wir wissen, dass Vererbung die Felder, Eigenschaften und Methoden der Basisklasse den Unterklassen hinzufügt ...
- Eine Unterklasse kann Methoden überschreiben, um geerbte Methoden zu ändern oder zu ersetzen
- Überall dort, wo Sie die Basisklasse verwenden können, können Sie stattdessen ein Unterklasse verwenden
- Unterklassen können Oberklassenmethoden ausblenden
- Nutzen Sie override und virtual, um Verhalten zu ändern
- Basisklassenzugriff über das Schlüsselwort base
- Hat die Basisklasse einen Konstruktor, braucht ihn die Unterklasse auch
- Jetzt können Sie die Arbeit für Kathrin abschließen!
- Bauen Sie eine Bienenstockverwaltung
- Erst bauen Sie das Grundsystem
- Erweitern Sie die Bienenverwaltung mit Vererbung
-
7. Schnittstellen und abstrakte Klassen: Klassen, die Versprechen halten
- Kehren wir zu den Bienen zurück
- Mit Vererbung können wir Klassen für die unterschiedlichen Arten von Bienen erstellen
- Eine Schnittstelle sagt einer Klasse, dass sie bestimmte Methoden und Eigenschaften implementieren muss
- Schnittstellen definieren Sie mit dem Schlüsselwort interface
- NektarWache macht beides
- Klassen, die Schnittstellen implementieren, müssen ALLE Methoden der Schnittstelle einschließen
- Sammeln Sie Erfahrung im Umgang mit Schnittstellen
- Eine Schnittstelle können Sie nicht instantiieren, aber Sie können sie referenzieren
- Schnittstellenreferenzen funktionieren wie Objektreferenzen
- Mit »is« können Sie ermitteln, ob eine Klasse eine bestimmte Schnittstelle implementiert
- Eine Schnittstelle kann von einer anderen erben
- Eine RoboBiene kann die Arbeit von Arbeiterinnen erledigen und braucht keinen Honig
- is sagt, welchen Typ Ihr Objekt hat, as sagt dem Compiler, wie er es behandeln soll
- Eine KaffeeMaschine ist auch ein Gerät
- Umwandeln funktioniert mit Objekten und Schnittstellen
- Mit Downcasting können Sie Ihr Gerät wieder zu einer Kaffeemaschine machen
- Upcasting und Downcasting funktionieren auch mit Schnittstellen
- Es gibt nicht nur public und private
- Zugriffsmodifizierer ändern die Sichtbarkeit
- Manche Klassen sollten nicht instantiiert werden
- Eine abstrakte Klasse ist vergleichbar mit einer Kreuzung aus normaler Klasse und Schnittstelle
- Manche Klassen sollten nicht instantiiert werden
- Eine abstrakte Methode hat keinen Rumpf
- Der Deadly Diamnd f Death!
- Polymorphie bedeutet, dass ein Objekt viele verschiedene Formen annehmen kann
-
8. Enums und Auflistungen: Daten in Massen speichern
- Gelegentlich sind Strings nicht gut genug, wenn es darum geht, Kategorien von Daten zu speichern
- Mit Enumerationen können Sie erlaubte Werte aufzählen
- Mit Enums können Zahlen über Namen repräsentiert werden
- Wir könnten einen Kartenstapel über ein Array repräsentieren
- Die Arbeit mit Arrays ist nicht immer einfach
- Listen erleichtern das Speichern von Sammlungen ... jeder Art
- Listen sind flexibler als Arrays
- Listen schrumpfen und wachsen dynamisch
- Generische Auflistungen können beliebige Typen speichern
- Auflistungsinitialisierer funktionieren wie Objektinitialisierer
- Erstellen wir eine Liste mit Enten
- Listen sind leicht, aber SORTIEREN kann verzwickt sein
- Enten sortieren mit IComparable<Ente>
- Mit IComparer sagen Sie Ihren Listen, wie sie sortieren sollen
- Erstellen Sie eine Instanz Ihrer Comparer-Klasse
- Komplexe IComparer
- Die ToString()-Methode von Objekten überschreiben
- foreach aktualisieren, damit sich Enten und Karten selbst darstellen
- Über IEnumerable ganze Listen upcasten
- Auch Sie können Methoden überladen
- Schlüssel und Werte speichern Sie in Wörterbüchern
- Die Dictionary-Funktionalität im Überblick
- Ein Programm mit einem Wörterbuch erstellen
- Noch MEHR Auflistungstypen ...
- Eine Queue ist FIFO – First-in-First-out
- Ein Stack ist LIFO – Last-in-First-out
-
5. Kapselung: Alles zu zeigen, ist nicht immer richtig
-
II. C#-Workshop: Die Suche
-
9. Dateien lesen und schreiben: Speichere das Array, rette die Welt
- C# nutzt Streams, um Daten zu lesen und zu schreiben
- Verschiedene Streams lesen und schreiben verschiedene Dinge
- Ein FileStream schreibt Bytes in eine Datei
- Wie man Daten in eine Textdatei schreibt
- Der nächste teuflische Plan des Fieslings
- Lesen und Schreiben mit zwei Objekten
- Daten können durch mehrere Streams laufen
- Öffnen Sie mit eingebauten Objekten Standarddialoge
- Dialoge sind einfach ein weiteres .NET-Steuerelement
- Dialoge sind auch Objekte
- Mit den eingebauten Klassen File und Directory können Sie mit Dateien und Verzeichnissen arbeiten
- Dateien mit vorgefertigten Dialogen öffnen und speichern
- IDisposable sorgt dafür, dass Ihre Objekte entsorgt werden
- Vermeiden Sie Dateisystemfehler mit using-Anweisungen
- Ärger im Büro
- Beim Schreiben von Dateien muss man in der Regel viele Entscheidungen treffen
- Wählen Sie Ihre Optionen mit einer switch-Anweisung
- Schreiben und lesen Sie mit switch Ihre Spielkarten in eine bzw. aus einer Datei
- Ein überladener Kartenstapel()-Konstruktor, der einen Kartenstapel aus einer Datei einliest
- Wird ein Objekt serialisiert, werden die Objekte, die es referenziert, ebenfalls serialisiert ...
- Mit Serialisierung können Sie ein ganzes Objekt auf einmal lesen oder schreiben
- Serialisieren und deserialisieren wir einen Kartenstapel
- .NET speichert Text in Unicode
- Mit byte-Arrays können Daten verschoben werden
- Binäre Daten schreiben Sie mit einem BinaryWriter
- Sie können serialisierte Dateien auch manuell lesen und schreiben
- Die Dateien an den Punkten ändern, an denen sie sich unterscheiden
- Die Arbeit mit Binärdateien kann kompliziert sein
- Mit Datei-Streams ein Hex-Dump-Programm erstellen
- StreamReader und StreamWriter reichen vollkommen aus
- Mit Stream.Read() Bytes aus einem Stream lesen
-
10. Exceptin-Handling: Fehler-Prävention
- Brians Entschuldigungen müssen mobil werden
- Löst Ihr Programm eine Exception aus, erzeugt .NET ein Exception-Objekt
- Brians Code machte etwas Unerwartetes
- Alle Exception-Objekte erben von Exception
- Der Debugger hilft Ihnen, Exceptions in Ihrem Code aufzuspüren und zu verhindern
- Nehmen Sie den Debugger, um herauszufinden, was genau das Problem in der Entschuldigungsverwaltung ist
- Och nee, der Code hat immer noch Probleme
- Exceptions mit try und catch behandeln
- Was passiert, wenn eine Methode gefährlich ist?
- Folgen Sie try/catch mit dem Debugger
- Nutzen Sie finally, wenn Sie Code haben, der IMMER ausgeführt werden soll
- Nutzen Sie das Exception-Objekt, um Informationen zum Problem zu erhalten
- Mehrere Typen von Exceptions mit mehreren Catch-Blöcken abfangen
- Eine Klasse löst eine Exception aus, eine andere fängt sie ab
- Bienen brauchen eine HonigLeerException
- Ein einfaches Mittel, um viele Probleme zu vermeiden: using gibt Ihnen try und finally kostenlos
- Exception-Vorsorge: Implementieren Sie IDisposable für eigene Aufräumarbeiten
- Der SCHLIMMSTE catch-Block: Kommentare
- Vorübergehende Lösungen sind okay (vorübergehend)
- Einige einfache Gedanken zum Exception-Handling
- finally verschafft Brian seinen Urlaub ...
-
11. Events und Delegates: Was Ihr Code macht, wenn Sie nicht gucken
- Möchten auch Sie, dass Ihre Objekte für sich selbst denken?
- Aber woher weiß ein Objekt, dass es reagieren soll?
- Wenn Events eintreten ... lauschen Objekte
- Ein Objekt setzt ein Event ab, andere lauschen darauf ...
- Dann behandeln andere Objekte das Event
- Die Punkte verbinden
- Die IDE erzeugt Event-Handler automatisch
- Mit generischen Event-Handlern eigene Event-Typen definieren
- Alle Formulare, die Sie bisher erstellt haben, nutzen Events
- Event-Sender mit Event-Empfängern verbinden
- Ein Delegate VERTRITT die eigentliche Methode
- Delegates in Aktion
- Jedes Objekt kann ein öffentliches Event abonnieren ...
- Nutzen Sie Callbacks statt Events, um genau ein Objekt mit einem Delegate zu verbinden
- Callbacks nutzen Delegates, aber KEINE Events
-
12. Rückblick und Vrschau: Wissen, Macht und cooles Zeug erstellen
- Du hast einen langen Weg hinter dir, Baby
- Wir sind Imker geworden
- Die Architektur des Bienenstock-Simulators
- Den Bienenstock-Simulator erstellen
- Leben und Sterben einer Blume
- Nun brauchen wir die Klasse Biene
- Geben wir den Bienen ein Zuhause
- Der Stock läuft mit Honig
- Die Klasse Stock ergänzen
- Die Laufen()-Methode des Stocks
- Wir sind bereit für die Welt
- Wir bauen ein rundenbasiertes System
- Hier ist der Code für Welt
- Den Bienen ein Verhalten geben
- Das Hauptformular bringt die Welt ans Laufen()
- Wir können die Welt nutzen, um Informationen zu erhalten
- Timer lösen Events immer wieder aus
- Arbeiten wir mit Gruppen von Bienen
- Eine Auflistung sammelt ... DATEN
- LINQ vereinfacht die Arbeit mit den Daten in Auflistungen und Datenbanken
- Testlauf (Teil 2)
- Eine letzte Herausforderung: Öffnen und Speichern
-
13. Steuerelemente und Grafik: Machen Sie es ansehnlich
- Sie haben die ganze Zeit Steuerelemente für die Interaktion mit Ihren Programmen verwendet
- Formular-Steuerelemente sind auch nur Objekte
- Den Bienenstock-Simulator mit Steuerelementen animieren
- Ein Renderer für Ihre Architektur
- Der Renderer zeichnet alles in der Welt in den beiden Formularen
- Controls sind für grafisch angezeigte Elemente gut geeignet
- Ihr erstes animiertes Steuerelement erstellen
- BienenControl ist WIE eine PictureBox ... beginnen wir also damit, PictureBox zu ERWEITERN
- Fügen Sie einem Formular das BienenControl über einen Button hinzu
- Ihre Steuerelemente müssen dispose() anbieten
- Mit UserControl können Steuerelemente leicht erstellt werden
- Der Renderer nutzt Ihr BienenControl, um animierte Bienen auf Ihre Formulare zu zeichnen
- Fügen Sie dem Projekt die neuen Formulare hinzu
- Den Renderer erstellen
- Das Hauptformular mit den beiden neuen Formularen verbinden
- Testlauf ... nein, Testflug
- Sieht toll aus, aber ein paar kleine Haken gibt’s noch
- Schauen wir uns zunächst die Leistungsprobleme an
- Bitmaps skalieren Sie über ein Graphics-Objekt
- Ihre Grafikressourcen werden als Bitmap-Objekt gespeichert
- Nutzen Sie System.Drawing, um Ihre Grafiken SELBST zu STEUERN
- Ein GDI+-Schnellkurs
- Mit Graphics ein Bild auf ein Formular zeichnen
- Graphics kann unser Transparenzproblem lösen
- Paint macht Ihre Zeichnungen dauerhaft
- Das Neuzeichnen von Formularen und Steuerelementen aus der Nähe betrachtet
- Double-Buffering macht Ihre Animation glatter
- Double-Buffering ist in Formulare und Steuerelemente eingebaut
- Mit einem Graphics-Objekt und einem Event-Handler drucken
- PrintDocument nutzt den Drucken-Dialog und die Druckvorschau
-
14. Captain Amazing: Der Tod Des Objekts
- Ihre letzte Chance, etwas zu TUN ... der Destruktor Ihres Objekts
- Wann GENAU läuft ein Destruktor?
- Dispose() arbeitet mit using, Destruktoren mit der Garbage Collection
- Destruktoren können von der Stabilität abhängen
- Lassen Sie ein Objekt sich selbst in Dispose() serialisieren
- Ein Struct sieht aus wie ein Objekt ...
- ... ist aber nicht auf dem Heap
- Werte werden kopiert, Referenzen werden zugewiesen
- Structs sind Werttypen, Objekte sind Referenztypen
- Stack vs. Heap: mehr zum Speicher
- Mit Parametern Methoden mehrere Werte liefern lassen
- Mit dem Modifizierer ref Referenzen übergeben
- Mit optionalen Parametern Standardwerte setzen
- Nullbare Typen vertreten nicht existierende Werte
- Nullbare Typen machen Programme robuster
- Captain Amazing ... nicht ganz
- Erweiterungsmethoden fügen BESTEHENDEN Klassen neue Verhalten hinzu
- Einen elementaren Typ erweitern: string
- Erweiterungs-Magneten
- Erweiterungs-Magneten, Lösung
-
15. LINQ: Bekommen Sie Ihre Daten in den Griff
- Ein leichtes Projekt ...
- ... aber die Daten sind völlig zerstreut
- LINQ kann Daten aus mehreren Quellen ziehen
- .NET-Auflistungen sind bereits für LINQ eingerichtet
- LINQ vereinfacht Abfragen
- LINQ ist einfach, Ihre Abfragen sind das nicht immer
- LINQ ist vielseitig
- LINQ kann Ergebnisse zu Gruppen zusammenfassen
- Tims Werte gruppieren
- Zwei Auflistungen in einer Abfrage mit join kombinieren
- Tim hat eine Menge Kohle gespart
- LINQ mit einer SQL-Datenbank verbinden
- Fragen Sie Sternback und die Papierfabrik mit einem Join ab
-
9. Dateien lesen und schreiben: Speichere das Array, rette die Welt
-
III. C#-Workshop: Invaders
-
A. Was übrig bleibt: Die Top 11 der Themen, die es nicht ins Buch geschafft haben
- 1. Die Grundlagen
- #2. Namensräume und Assemblies
- 3. Mit BackgroundWorker das UI reaktiver machen
- 4. Die Klasse Type und GetType()
- 5. Gleichheit, IEquatable und Equals()
- 6. Mit yield return enumerierbare Objekte erzeugen
- 7. Umgestalten (Refactoring)
- 8. Anonyme Typen und Methoden sowie Lambda-Ausdrücke
- 9. Daten mit DataContractSerializer serialisieren
- 10. LINQ to XML
- 11. Windows Presentation Foundation
- Wussten Sie, dass Sie mit C# und dem .NET Framework ...
-
A. Was übrig bleibt: Die Top 11 der Themen, die es nicht ins Buch geschafft haben
- Stichwortverzeichnis
Product information
- Title: C# von Kopf bis Fuß, Second Edition
- Author(s):
- Release date: September 2010
- Publisher(s): O'Reilly Verlag
- ISBN: 97833897216525
You might also like
book
C# von Kopf bis Fuß, 3rd Edition
Dieses Standardwerk aus der beliebten „von Kopf bis Fuß“-Reihe nimmt den Leser auf eine Erlebnistour durch …
book
C von Kopf bis Fuß
Schon mal davon geträumt, C zu lernen und dabei Spaß zu haben? Mit C von Kopf …
book
C# 8.0 – kurz & gut, 6th Edition
Ideal für vielbeschäftigte Programmierer*innen, die eine knappe und zugleich verständliche Beschreibung von C# 8.0 und LINQ …
book
Java™ von Kopf bis Fuß
Java von Kopf bis Fuß ist eine umfassende Erlebnistour durch die Objektorientierte Programmierung und Java. Ganz …