C# 2.0 Schnellübersicht von Olaf Lüder

Die praktische Referenz zu C# 2.0

Inhaltsverzeichnis (C# Schnellübersicht)

  1. 1 Allgemeine Sprachkonzepte
    1. 1.1 Einführung und Geschichte
      1. 1.1.1 C#
      2. 1.1.2 Das .NET Framework
    2. 1.2 Installation und Werkzeuge
      1. 1.2.1 .NET Framework
      2. 1.2.2 Visual Studio 2005
    3. 1.3 Programmaufbau
      1. 1.3.1 Erste Schritte: Hallo Welt!
      2. 1.3.2 Bezeichner
      3. 1.3.3 Kommentare
    4. 1.4 Neues in C# 2.0 und .NET 2.0
  2. 2 Daten
    1. 2.1 Überblick
      1. 2.1.1 Grunddatentypen
      2. 2.1.2 Werte- und Verweistypen
    2. 2.2 Wertetypen
      1. 2.2.1 Ganzzahlige Typen (int, long)
      2. 2.2.2 Gleitkommatypen (float, double)
      3. 2.2.3 Dezimaltyp (decimal)
      4. 2.2.4 Wahrheitswerte (bool)
      5. 2.2.5 Zeichentyp (char)
      6. 2.2.6 Aufzählungstyp (enum)
      7. 2.2.7 Strukturtyp (struct)
      8. 2.2.8 Nullbare Typen
    3. 2.3 Verweistypen
      1. 2.3.1 Zeichenfolgen (String)
      2. 2.3.2 Arrays
    4. 2.4 Literale, Konstanten und Variablen
      1. 2.4.1 Literale
      2. 2.4.2 Konstanten
      3. 2.4.3 Variablen
    5. 2.5 Typkonvertierungen
      1. 2.5.1 Implizite Konvertierungen
      2. 2.5.2 Explizite Konvertierungen
      3. 2.5.3 Umwandlungen von und in Zeichenfolgen
      4. 2.5.4 Boxing und Unboxing
  3. 3 Ausdrücke und Anweisungen
    1. 3.1 Ausdrücke
      1. 3.1.1 Operatoren und Operanden
      2. 3.1.2 Aufbau von Ausdrücken
      3. 3.1.3 Auswertung von Ausdrücken
    2. 3.2 Operatoren
      1. 3.2.1 Arithmetische Operatoren
      2. 3.2.2 Stringverkettung
      3. 3.2.3 Bitweise Operatoren
      4. 3.2.4 Logische Operatoren
      5. 3.2.5 Vergleichsoperatoren
      6. 3.2.6 Bedingungsoperator
      7. 3.2.7 Nullverschmelzungsoperator
      8. 3.2.8 Zuweisungsoperatoren
      9. 3.2.9 Typoperatoren (typeof, sizeof, as, is)
    3. 3.3 Anweisungen
      1. 3.3.1 Leere Anweisung und Blöcke
      2. 3.3.2 Ausdrucksanweisungen
      3. 3.3.3 Auswahlanweisungen
      4. 3.3.4 Wiederholungsanweisungen
      5. 3.3.5 Sprunganweisungen
      6. 3.3.6 Fehlerbehandlung
      7. 3.3.7 Sonstige Anweisungen
  4. 4 Klassen und Objekte
    1. 4.1 Klassen
      1. 4.1.1 Klassendefinition
      2. 4.1.2 Verschachtelte Typen
      3. 4.1.3 Partielle Typen
      4. 4.1.4 Statische Klassen
      5. 4.1.5 Memberzugriff
      6. 4.1.6 Modifizierer
    2. 4.2 Felder und Konstanten
      1. 4.2.1 Instanzfelder
      2. 4.2.2 Klassenfelder
      3. 4.2.3 Konstanten
      4. 4.2.4 Schreibgeschützte Felder
    3. 4.3 Eigenschaften und Indexer
      1. 4.3.1 Eigenschaften
      2. 4.3.2 Indexer
    4. 4.4 Methoden
      1. 4.4.1 Parameter
      2. 4.4.2 Methodensignatur
      3. 4.4.3 Überladen von Methoden
      4. 4.4.4 Instanzmethoden
      5. 4.4.5 Klassenmethoden
      6. 4.4.6 Rekursive Methoden
    5. 4.5 Operatorenüberladung
      1. 4.5.1 Überladen von Vergleichsoperatoren
      2. 4.5.2 Überladen arithmetischer Operatoren
      3. 4.5.3 Konvertierungsoperatoren überladen
    6. 4.6 Konstruktoren und Destruktoren
      1. 4.6.1 Konstruktoren
      2. 4.6.2 Private Konstruktoren
      3. 4.6.3 Statische Konstruktoren
      4. 4.6.4 Destruktoren
      5. 4.6.5 Lebensdauer
    7. 4.7 Delegaten und Ereignisse
      1. 4.7.1 Delegaten
      2. 4.7.2 Anonyme Methoden
      3. 4.7.3 Ereignisse
    8. 4.8 Strukturen (structs)
    9. 4.9 Vererbung und Polymorphie
      1. 4.9.1 Vererbung
      2. 4.9.2 Polymorphie
      3. 4.9.3 Object – Basis aller Objekte
      4. 4.9.4 Typbestimmung und -umwandlung
      5. 4.9.5 Verdecken von Elementen
      6. 4.9.6 Überschreiben von Methoden
      7. 4.9.7 Dynamische Bindung
      8. 4.9.8 Dynamische Bindung, Beispiel
    10. 4.10 Schnittstellen und abstrakte Klassen
      1. 4.10.1 Schnittstellen
      2. 4.10.2 Abstrakte Klassen
      3. 4.10.3 Schnittstelle oder abstrakte Klasse
      4. 4.10.4 Versiegelte Klassen
  5. 5 Weiterführende OOP-Konzepte
    1. 5.1 Ausnahmebehandlung
      1. 5.1.1 Überblick
      2. 5.1.2 Ablauf der Ausnahmebehandlung
      3. 5.1.3 Die Exception-Klasse
      4. 5.1.4 Ausnahmen auslösen
      5. 5.1.5 Ausnahmen behandeln (try ... catch)
      6. 5.1.6 Ausführung sicherstellen (finally)
      7. 5.1.7 Benutzerdefinierte Ausnahmen
    2. 5.2 Generika (Generics)
      1. 5.2.1 Motivation
      2. 5.2.2 Generische Klassen
      3. 5.2.3 Generische Methoden
      4. 5.2.4 Generische Delegaten
    3. 5.3 Iteratoren
      1. 5.3.1 Verwendung von Iteratoren
      2. 5.3.2 Rekursive Iterationen
      3. 5.3.3 Nicht nur zum Durchlaufen
    4. 5.4 Namespaces
      1. 5.4.1 Deklaration
      2. 5.4.2 Verschachtelte Namespaces
      3. 5.4.3 Verwendung von Namespaces
    5. 5.5 Assemblies
      1. 5.5.1 Aufbau von Assemblies
      2. 5.5.2 Multi File Assemblies
      3. 5.5.3 Private Assemblies
      4. 5.5.4 Freigegebene Assemblies
      5. 5.5.5 Befreundete Assemblies
    6. 5.6 Attribute
      1. 5.6.1 Überblick
      2. 5.6.2 Vordefinierte Attribute
      3. 5.6.3 Benutzerdefinierte Attribute
    7. 5.7 Reflexion
      1. 5.7.1 Überblick
      2. 5.7.2 Laden von Assemblies
      3. 5.7.3 Untersuchen von Assemblies
      4. 5.7.4 Typen dynamisch erzeugen
      5. 5.7.5 Syntaxübersicht
  6. 6 Framework-Klassen
    1. 6.1 Die String-Klasse
      1. 6.1.1 Deklaration und Initialisierung
      2. 6.1.2 Länge von Zeichenfolgen
      3. 6.1.3 Teilfolgen abfragen, ersetzen und entfernen
      4. 6.1.4 Zeichenfolgen verketten
      5. 6.1.5 Zeichenfolgen vergleichen, durchsuchen und normieren
      6. 6.1.6 Vergleichsmodi und Sortierreihenfolgen
      7. 6.1.7 Zeichenfolgen formatieren
      8. 6.1.8 Kodierung von Zeichenfolgen
      9. 6.1.9 Sichere Zeichenfolgen: SecureString
      10. 6.1.10 Syntaxübersicht
    2. 6.2 Stringbuilder
      1. 6.2.1 Überblick
      2. 6.2.2 Syntaxübersicht
    3. 6.3 Reguläre Ausdrücke
      1. 6.3.1 Arbeiten mit regulären Ausdrücken
      2. 6.3.2 Suchen
      3. 6.3.3 Ersetzen
      4. 6.3.4 Aufteilen
      5. 6.3.5 Syntaxübersicht
    4. 6.4 Datums- und Zeitfunktionen
      1. 6.4.1 Die DateTime-Struktur
      2. 6.4.2 Die TimeSpan-Struktur
      3. 6.4.3 Datumsarithmetik
      4. 6.4.4 Die DateTimeFormatInfo-Klasse
    5. 6.5 Mathematische Funktionen
      1. 6.5.1 Die Klasse System.Math
      2. 6.5.2 Zufallszahlen mit System.Random
    6. 6.6 Auflistungen (Collections)
      1. 6.6.1 Schnittstellen für Auflistungen
      2. 6.6.2 Generische Auflistungen
      3. 6.6.3 Sortieren und Suchen
      4. 6.6.4 ArrayList und List
      5. 6.6.5 Hashtable und Dictionary
      6. 6.6.6 SortedList
      7. 6.6.7 Stack und Queue
      8. 6.6.8 Syntaxübersicht
  7. 7 GUI-Anwendungen mit WinForms
    1. 7.1 Grundlagen
      1. 7.1.1 „Hallo Welt!“ – die grafische Variante
      2. 7.1.2 „Hallo Welt!“ in Visual Studio
      3. 7.1.3 Grundbegriffe
    2. 7.2 Steuerelemente, Grundlagen
      1. 7.2.1 Control – gemeinsame Eigenschaften
      2. 7.2.2 Control – gemeinsame Methoden
      3. 7.2.3 Control – gemeinsame Ereignisse
      4. 7.2.4 Fokus, Zugriffstasten und Tabulatorreihenfolge
    3. 7.3 Standardsteuerelemente
      1. 7.3.1 Beschriftungen und statische Texte
      2. 7.3.2 Schaltflächen
      3. 7.3.3 Textfelder
      4. 7.3.4 Datums- und Zeitauswahl
      5. 7.3.5 Listenfelder
      6. 7.3.6 Regler, Scroll- und Fortschrittsbalken
      7. 7.3.7 Container
      8. 7.3.8 Sonstige Steuerelemente
      9. 7.3.9 Nicht sichtbare Steuerelemente
      10. 7.3.10 Benutzerdefinierte Steuerelemente
    4. 7.4 Menüs, Symbol- und Statusleisten
      1. 7.4.1 Objekthierarchie
      2. 7.4.2 Menüs
      3. 7.4.3 Symbolleisten
      4. 7.4.4 Statusleisten
      5. 7.4.5 ToolStripPanel und ToolStripContainer
      6. 7.4.6 ToolStripManager
    5. 7.5 Formulare
      1. 7.5.1 Formular-Member
      2. 7.5.2 Dialogfelder
      3. 7.5.3 Standarddialoge
      4. 7.5.4 Meldungsfelder
    6. 7.6 Die Application-Klasse
      1. 7.6.1 Anwendungen starten und beenden
      2. 7.6.2 Designs unter Windows XP
      3. 7.6.3 Startbildschirm (Splash Screen)
  8. 8 Grafikprogrammierung (GDI+)
    1. 8.1 Einführung
      1. 8.1.1 Überblick
      2. 8.1.2 Das Koordinatensystem
      3. 8.1.3 Basisobjekte
      4. 8.1.4 Graphics – die Zeichenoberfläche
    2. 8.2 Grundlegende Grafikfunktionen
      1. 8.2.1 Zeichen- und Füllmethoden
      2. 8.2.2 Regionen und Clipping
      3. 8.2.3 Neuzeichnen des Fensterinhalts
      4. 8.2.4 Farben
      5. 8.2.5 Stifte als Zeichenwerkzeuge
      6. 8.2.6 Pinsel als Füllwerkzeuge
      7. 8.2.7 Texte und Schriftarten
      8. 8.2.8 Bilder und Metadateien
    3. 8.3 Fortgeschrittene Techniken
      1. 8.3.1 Kantenglättung (Antialiasing)
      2. 8.3.2 Scrolling
      3. 8.3.3 Tastatur- und Mausereignisse
      4. 8.3.4 Transformationen
      5. 8.3.5 Low-Level-Operationen
  9. 9 Ein- und Ausgabe
    1. 9.1 Dateisystem
      1. 9.1.1 Dateien und Verzeichnisse
      2. 9.1.2 Sicherheitsdeskriptoren
      3. 9.1.3 Dateisystem überwachen
      4. 9.1.4 Syntaxübersicht
    2. 9.2 Datenströme (Streams)
      1. 9.2.1 Stream – die Basisklasse
      2. 9.2.2 FileStream
      3. 9.2.3 MemoryStream
      4. 9.2.4 BufferedStream
      5. 9.2.5 GZipStream
      6. 9.2.6 CryptoStream
      7. 9.2.7 Arbeiten mit Binärdaten
      8. 9.2.8 Arbeiten mit Textdaten
      9. 9.2.9 Syntaxübersicht
    3. 9.3 Serialisierung
      1. 9.3.1 BinaryFormatter und SoapFormatter
      2. 9.3.2 XmlSerializer
    4. 9.4 Netzwerkkommunikation
      1. 9.4.1 Überblick
      2. 9.4.2 Netzwerkstatus und -informationen
      3. 9.4.3 Die Klasse TcpClient
      4. 9.4.4 E-Mails versenden
      5. 9.4.5 HTTP- und FTP-Zugriffe
      6. 9.4.6 Syntaxübersicht
  10. 10 Prozesse, Threads und Timer
    1. 10.1 Prozesse
      1. 10.1.1 Informationen über Prozesse
      2. 10.1.2 Informationen über Dienste
      3. 10.1.3 Informationen über Threads
      4. 10.1.4 Prozesse ausführen
      5. 10.1.5 Syntaxübersicht
    2. 10.2 Threads
      1. 10.2.1 Überblick
      2. 10.2.2 Die Thread-Klasse
      3. 10.2.3 Multithreading mit dem Thread-Pool
      4. 10.2.4 Die BackgroundWorker-Komponente
      5. 10.2.5 Threads und Windows Forms
      6. 10.2.6 Threads und Ausnahmen
      7. 10.2.7 Syntaxübersicht
    3. 10.3 Synchronisierung
      1. 10.3.1 Wettlaufbedingung
      2. 10.3.2 MethodImplOptions.Synchronized
      3. 10.3.3 Die Klasse Interlocked
      4. 10.3.4 Monitore und die lock-Anweisung
      5. 10.3.5 Lese-/Schreibsperren
      6. 10.3.6 Ereignisse, Semaphore und Mutexe
      7. 10.3.7 Verklemmungen (Deadlocks)
      8. 10.3.8 Syntaxübersicht
    4. 10.4 Timer
      1. 10.4.1 System.Windows.Forms.Timer
      2. 10.4.2 System.Timers.Timer
      3. 10.4.3 System.Threading.Timer
      4. 10.4.4 Syntaxübersicht
  11. A Anhang
    1. A.1 Schlüsselwörter
    2. A.2 Benennungsrichtlinien
    3. A.3 Dokumentationskommentare