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# Kochbuch

Book Description

Das C# Kochbuch bietet Praktikern einen schnellen Zugang zu konkreten Lösungsvorschlägen und Codebeispielen rund um C# 2.0, .NET 2.0 und Visual Studio 2005. Wie alle O'Reilly-Kochbücher besteht auch dieses Buch aus "Rezepten", die so aufgebaut sind

Table of Contents

  1. C# Kochbuch
    1. Einleitung
      1. An wen sich dieses Buch richtet
      2. Was Sie brauchen, um dieses Buch nutzen zu können
      3. Plattform-Hinweise
      4. Wie dieses Buch aufgebaut ist
      5. Was weggelassen wurde
      6. Zur deutschen Übersetzung
      7. Die in diesem Buch verwendeten Konventionen
      8. Die Codebeispiele zu diesem Buch
      9. Die Codebeispiele verwenden
      10. Danksagungen
    2. 1. Zahlen und Enumerationen
      1. 1.0 Einführung
      2. 1.1 Prüfen, ob ein Bruch und eine Fließkommazahl ungefähr gleich sind
      3. 1.2 Grad in Rad umwandeln
      4. 1.3 Rad in Grad umwandeln
      5. 1.4 Den Bit-Komplement-Operator mit verschiedenen Datentypen nutzen
      6. 1.5 Auf einen geraden oder einen ungeraden Wert prüfen
      7. 1.6 Das High-Word oder Low-Word zu einer Zahl ermitteln
      8. 1.7 Eine Zahl zu einer anderen Basis in eine Zahl zur Basis 10 konvertieren
      9. 1.8 Ermitteln, ob ein String eine gültige Zahl ist
      10. 1.9 Einen Fließkommawert runden
      11. 1.10 Einen Rundungsalgorithmus wählen
      12. 1.11 Celsius in Fahrenheit konvertieren
      13. 1.12 Fahrenheit in Celsius konvertieren
      14. 1.13 Einen verkleinernden numerischen Cast sicher durchführen
      15. 1.14 Einen Enumerationswert als einen String anzeigen
      16. 1.15 Klartext in einen äquivalenten Enumerationswert umwandeln
      17. 1.16 Prüfen, ob ein Wert ein gültiger Enumerationswert ist
      18. 1.17 Auf eine gültige Enumeration von Flags prüfen
      19. 1.18 Enumerierte Member in einer Bit-Maske verwenden
      20. 1.19 Ermitteln, ob ein oder mehr Enumerations-Flags gesetzt sind
      21. 1.20 Den ganzzahligen Anteil eines decimal- oder double-Werts ermitteln
    3. 2. Strings und Zeichen
      1. 2.0 Einführung
      2. 2.1 Die Art von Zeichen ermitteln, die ein char enthält
      3. 2.2 Beim Vergleich von zwei Zeichen die Berücksichtigung von Groß-/Kleinschreibung steuern
      4. 2.3 Die Positionen aller Vorkommen eines Strings in einem anderen String finden
      5. 2.4 Groß-/Kleinschreibung beim Vergleich von Strings steuern
      6. 2.5 Einen String mit dem Anfang oder dem Ende eines anderen Strings vergleichen
      7. 2.6 Einen Text in einen String einfügen
      8. 2.7 Zeichen in einen String einfügen oder aus ihm entfernen
      9. 2.8 Binäre Daten in Base64 kodieren
      10. 2.9 In Base64 kodierte Binärinformationen dekodieren
      11. 2.10 Einen String, der als byte[ ] zurückgeliefert wird, wieder in einen String umwandeln
      12. 2.11 Einen String an eine Methode übergeben, die nur ein byte[] akzeptiert
      13. 2.12 Strings in andere Typen umwandeln
      14. 2.13 Einen begrenzten String erzeugen
      15. 2.14 Elemente aus einem begrenzten String herausziehen
      16. 2.15 Alle Zeichen in einem String durchlaufen
      17. 2.16 Zeichen vom Ende oder Anfang eines Strings abschneiden
      18. 2.17 Einen String darauf testen, ob er null oder leer ist
      19. 2.18 Eine Zeile anhängen
    4. 3. Klassen und Strukturen
      1. 3.0 Einführung
      2. 3.1 Union-artige Strukturen erstellen
      3. 3.2 Einen Typ sortierbar machen
      4. 3.3 Einen Typ suchbar machen
      5. 3.4 Die Operatoren +=, -=, /= und *= indirekt überladen
      6. 3.5 Die Operatoren &&, || und ?: indirekt überladen
      7. 3.6 Fehlerfreie Ausdrücke erstellen
      8. 3.7 Ihre Boolesche Logik minimieren (reduzieren)
      9. 3.8 Sprachunabhängig zwischen einfachen Typen konvertieren
      10. 3.9 Herausfinden, wann der Cast()-Operator, der as-Operator oder der is-Operator verwendet werden sollten
      11. 3.10 Mit dem as-Operator casten
      12. 3.11 Den Typ einer Variablen mit dem is-Operator ermitteln
      13. 3.12 Aus einer Methode mehrere Elemente zurückliefern
      14. 3.13 Kommandozeilenparameter parsen
      15. 3.14 Ein konstantes Feld zur Laufzeit initialisieren
      16. 3.15 Klonbare Klassen erstellen
      17. 3.16 Die Entsorgung eines Objekts sichern
      18. 3.17 Nicht-verwaltete Ressourcen entsorgen
      19. 3.18 Feststellen, wann Boxing und Unboxing durchgeführt wird
    5. 4. Generics
      1. 4.0 Einführung
      2. 4.1 Entscheiden, wann und wo Generics verwendet werden sollten
      3. 4.2 Generische Typen verstehen
      4. 4.3 ArrayList durch das generische Gegenstück ersetzen
      5. 4.4 Stack und Queue durch ihre generischen Gegenstücke ersetzen
      6. 4.5 Eine verkette Liste (LinkedList) implementieren
      7. 4.6 Einen Werttyp erstellen, der auf null initialisiert werden kann
      8. 4.7 Den Inhalt einer SortedList umkehren
      9. 4.8 Schreibgeschützte generische Collections erstellen
      10. 4.9 Eine Hashtable durch das generische Gegenstück ersetzen
      11. 4.10 foreach mit generischen Dictionary-Typen verwenden
      12. 4.11 Typargumente beschränken
      13. 4.12 Generische Variablen auf ihre Default-Werte initialisieren
    6. 5. Collections
      1. 5.0 Einführung
      2. 5.1 Zwei Elemente in einem Array tauschen
      3. 5.2 Ein Array schnell umkehren
      4. 5.3 Ermitteln, wie oft ein Element in einer List<T> vorkommt
      5. 5.4 Alle Instanzen eines bestimmten Elements aus einer List<T> abrufen
      6. 5.5 Elemente in ein Array einfügen und aus einem Array entfernen
      7. 5.6 Eine List<T> sortiert halten
      8. 5.7 Die Schlüssel und/oder Werte eines Dictionary sortieren
      9. 5.8 Ein Dictionary mit Ober- und Untergrenzen für Werte erzeugen
      10. 5.9 Momentaufnahmen von Lists in Arrays speichern
      11. 5.10 Eine Collection zwischen Anwendungssessions erhalten
      12. 5.11 Alle Elemente in einem Array oder einer List<T> testen
      13. 5.12 Eine Aktion auf jedem Element eines Arrays oder einer List<T> durchführen
      14. 5.13 Ein schreibgeschütztes Array- oder List<T>-Objekt erzeugen
    7. 6. Iteratoren und partielle Typen
      1. 6.0 Einführung
      2. 6.1 In einer Klasse eine eingebettete foreach-Funktionalität implementieren
      3. 6.2 Eigene Enumeratoren erstellen
      4. 6.3 Auf einem generischen Typ einen Iterator implementieren
      5. 6.4 Auf einem nicht-generischen Typ einen Iterator erzeugen
      6. 6.5 Einem einzelnen Typ mehrere Iteratoren hinzufügen
      7. 6.6 Einen Iterator zwingen, die Iteration zu beenden
      8. 6.7 Mit Finally-Blöcken und Iteratoren klarkommen
      9. 6.8 Interface-Implementierungen organisieren
      10. 6.9 Code generieren, der sich nicht mehr im Haupt-Code-Pfad befindet
    8. 7. Exception-Handling
      1. 7.0 Einführung
      2. 7.1 Wann sollten Exceptionen abgefangen und weitergereicht werden?
      3. 7.2 Sichern, dass Exceptions nicht verloren gehen, wenn Finally-Blöcke verwendet werden
      4. 7.3 Exceptions von Methoden verarbeiten, die über Reflection aufgerufen wurden
      5. 7.4 Unbehandelte Exceptions verhindern
      6. 7.5 Exception-Informationen erhalten
      7. 7.6 Einem Problem schnell auf den Grund gehen
      8. 7.7 Einen neuen Exception-Typ erzeugen
      9. 7.8 Einen Stacktrace erhalten
      10. 7.9 Bei einem ersten Auftreten einer Exception abbrechen
      11. 7.10 Exceptions verarbeiten, die von einem asynchronen Delegate ausgelöst werden
      12. 7.11 Exceptions mithilfe von Exception.Data mit zusätzlichen Informationen ausstatten
      13. 7.12 Mit unbehandelten Exceptions in WinForms-Anwendungen umgehen
    9. 8. Diagnose
      1. 8.0 Einführung
      2. 8.1 Feinstufige Kontrolle über Debugging/Tracing-Ausgaben erhalten
      3. 8.2 Feststellen, ob ein Prozess nicht mehr reagiert
      4. 8.3 In einer Anwendung Event-Logs nutzen
      5. 8.4 Event-Log-Einträge durchsuchen
      6. 8.5 Das Event-Log auf einen bestimmten Eintrag überwachen
      7. 8.6 Einen einfachen Performance-Counter implementieren
      8. 8.7 Komplexen Tracing-Code aktivieren und deaktivieren
      9. 8.8 Die Standardausgabe eines Prozesses einfangen
      10. 8.9 Eigene Debugging-Anzeigen für Ihre Klasse erstellen
    10. 9. Delegates
      1. 9.0 Einführung
      2. 9.1 Steuern, wann ein Delegate in einem Multicast-Delegate ausgelöst wird
      3. 9.2 Die Rückgabewerte aller Delegates in einem Multicast-Delegate erhalten
      4. 9.3 Exceptions separat für alle Delegates in einem Multicast-Delegate verarbeiten
      5. 9.4 Synchrone Delegate-Aufrufe in asynchrone umwandeln
      6. 9.5 Ein fortgeschrittener Suchmechanismus für Interfaces
      7. 9.6 Veränderungen an und Hinzufügungen zu einer Hashtable beobachten
      8. 9.7 Anonyme Methoden verwenden
      9. 9.8 Event-Handler sauber einrichten
      10. 9.9 In anonymen Methoden unterschiedliche Parameter-Modifier verwenden
      11. 9.10 In C# Closures
      12. 9.11 Mit Funktionsobjekten mehrere Operationen auf einer Liste durchführen
    11. 10. Reguläre Ausdrücke
      1. 10.0 Einführung
      2. 10.1 Treffer enumerieren
      3. 10.2 Gruppen aus einer MatchCollection herausziehen
      4. 10.3 Die Syntax eines regulären Ausdrucks prüfen
      5. 10.4 Schnell nur den letzten Treffer in einem String finden
      6. 10.5 Die elementaren String-Ersetzungsfunktionen verstärken
      7. 10.6 Einen Tokenizer implementieren
      8. 10.7 Die Zeilen eines Texts zählen
      9. 10.8 Die gesamte Zeile zurückliefern, in der ein Treffer gefunden wird
      10. 10.9 Ein bestimmtes Vorkommen eines Treffers finden
      11. 10.10 Verbreitete Muster verwenden
    12. 11. Dateisystem-I/O
      1. 11.0 Einführung
      2. 11.1 Datei-Attribute manipulieren
      3. 11.2 Eine Datei umbenennen
      4. 11.3 Ein plattformunabhängiges Zeilenende-Zeichen ausgeben
      5. 11.4 Verzeichnisattribute manipulieren
      6. 11.5 Ein Verzeichnis umbenennen
      7. 11.6 Mit Jokerzeichen nach Dateien oder Verzeichnissen suchen
      8. 11.7 Einen Verzeichnisbaum erhalten
      9. 11.8 Einen Pfad parsen
      10. 11.9 Pfade in Umgebungsvariablen parsen
      11. 11.10 Konsolenwerkzeuge starten und verwenden
      12. 11.11 Warten, dass im Dateisystem ein Ereignis eintritt
      13. 11.12 Die Versionsinformationen von zwei ausführbaren Modulen vergleichen
      14. 11.13 Informationen zu allen Laufwerken auf einem System abfragen
      15. 11.14 Dateien komprimieren und dekomprimieren
    13. 12. Reflection
      1. 12.0 Einführung
      2. 12.1 Referenzierte Assemblies auflisten
      3. 12.2 Exportierte Typen auflisten
      4. 12.3 Überschriebene Methoden ermitteln
      5. 12.4 In einer Assembly Member finden
      6. 12.5 Die eingebetteten Typen in einer Assembly ermitteln und abrufen
      7. 12.6 Die Vererbungshierarchie für einen Typ anzeigen
      8. 12.7 Die Unterklassen eines Typs ermitteln
      9. 12.8 Alle serialisierbaren Typen in einer Assembly finden
      10. 12.9 Member dynamisch aufrufen
      11. 12.10 Prüfen, ob ein Typ oder eine Methode generisch ist
      12. 12.11 Informationen zu lokalen Variablen erhalten
      13. 12.12 Einen generischen Typ erzeugen
    14. 13. Web
      1. 13.0 Einführung
      2. 13.1 Eine IP-Adresse in einen Hostnamen umwandeln
      3. 13.2 Einen Hostnamen in eine IP-Adresse umwandeln
      4. 13.3 Einen URI parsen
      5. 13.4 Mit Webserver-Fehlern umgehen
      6. 13.5 Mit einem Webserver kommunizieren
      7. 13.6 Über einen Proxy gehen
      8. 13.7 Das HTML zu einer URL erhalten
      9. 13.8 Das neue WebBrowser-Steuerelement verwenden
      10. 13.9 Datenbank-Tabellen an den Cache binden
      11. 13.10 Eine ASP.NET-Website mittels Programmierung aufbauen
      12. 13.11 Daten für das Web maskieren
      13. 13.12 Die Klasse UriBuilder nutzen
      14. 13.13 Die Konfiguration Ihrer Webanwendung einsehen und ändern
      15. 13.14 Bei der Arbeit mit HTTP gecachte Ergebnisse verwenden
      16. 13.15 Die angepassten Fehlerseiten eines Webservers prüfen
    15. 14. XML
      1. 14.0 Einführung
      2. 14.1 XML-Daten in Dokumentordnung lesen oder schreiben
      3. 14.2 Den Inhalt eines XML-Dokuments durchsuchen
      4. 14.3 XML validieren
      5. 14.4 Ein XML-Dokument über ein Programm aufbauen
      6. 14.5 Änderungen an einem XML-Dokument feststellen
      7. 14.6 Ungültige Zeichen in einem XML-String behandeln
      8. 14.7 XML transformieren
      9. 14.8 Modifizierte XML-Dokumente validieren, ohne sie neu zu laden
      10. 14.9 XSLT-Transformationen erweitern
      11. 14.10 Schemas aus vorhandenen XML-Dateien ableiten
      12. 14.11 XSLT-Transformationen Parameter übergeben
    16. 15. Netzwerk
      1. 15.0 Einführung
      2. 15.1 Formulareingaben simulieren
      3. 15.2 Daten von einem Server herunterladen
      4. 15.3 Aus einem Programm heraus pingen
      5. 15.4 Über den SMPT-Dienst SMTP-Mails senden
      6. 15.5 Sockets nutzen, um die Ports auf einer Maschine zu scannen
      7. 15.6 Die aktuellen Internet-Verbindungseinstellungen nutzen
      8. 15.7 Über FTP eine Datei herunterladen
    17. 16. Sicherheit
      1. 16.0 Einführung
      2. 16.1 Den Zugriff auf Typen in einer lokalen Assembly steuern
      3. 16.2 Einen String verschlüsseln und entschlüsseln
      4. 16.3 Eine Datei verschlüsseln und entschlüsseln
      5. 16.4 Kryptographische Informationen aufräumen
      6. 16.5 Prüfen, dass ein String bei einer Übertragung nicht beschädigt wurde
      7. 16.6 Daten sicher speichern
      8. 16.7 Eine Sicherheitszusicherung absichern
      9. 16.8 Prüfen, dass einer Assembly bestimmte Berechtigungen verliehen wurden
      10. 16.9 Die Angriffsfläche einer Assembly minimieren
      11. 16.10 Sicherheits/Audit-Informationen erhalten
      12. 16.11 Zugriff auf eine Datei oder einen Registrierungsschlüssel gestatten bzw. widerrufen
      13. 16.12 Stringdaten mit sicheren Strings absichern
      14. 16.13 web.config-Informationen verschlüsseln
      15. 16.14 Den vollständigen Grund dafür erhalten, dass eine SecurityException ausgelöst wurde
      16. 16.15 Sichere Unicode-Kodierung erreichen
      17. 16.16 Ein sichereres Datei-Handle erhalten
    18. 17. Threading und Synchronisierung
      1. 17.0 Einführung
      2. 17.1 Thread-gebundene statische Felder erzeugen
      3. 17.2 Thread-sicheren Zugriff auf Klassen-Member bieten
      4. 17.3 Stillschweigende Thread-Beendigung verhindern
      5. 17.4 Thread-spezifische Daten privat speichern
      6. 17.5 Über Semaphore Mehrfachzugriff auf Ressourcen bieten
      7. 17.6 Mehrere Prozesse mit einem Mutex synchronisieren
      8. 17.7 Events für die Thread-Kooperation einsetzen
      9. 17.8 Benannte Events einsetzen
      10. 17.9 Atomare Operationen zwischen Threads durchführen
    19. 18. Werkzeugkasten
      1. 18.0 Einführung
      2. 18.1 Mit dem Herunterfahren des Betriebssystems, dem Power Management oder Änderungen der Benutzersitzungen arbeiten
      3. 18.2 Einen Dienst steuern
      4. 18.3 Die Prozesse auflisten, in denen eine Assembly geladen ist
      5. 18.4 Message-Queues auf der lokalen Arbeitsstation verwenden
      6. 18.5 Den Pfad zur aktuellen Version des Frameworks finden
      7. 18.6 Die Versionen einer Assembly ermitteln, die im Global Assembly Cache (GAC) registriert sind
      8. 18.7 Die Standardausgabe einfangen
      9. 18.8 Code in seiner eigenen AppDomain ausführen
      10. 18.9 Die Betriebssystem- und Service-Pack-Version des aktuellen Betriebssystems ermitteln
    20. Kolophon