Rheinwerk Computing <openbook>
Rheinwerk Computing - Programming the Net


 
C# von Eric Gunnerson
Die neue Sprache für Microsofts .NET-Plattform
C# - Zum Katalog Nutzen Sie jetzt die HTML-Version der ersten Auflage zum Reinschnuppern!

Wir freuen uns über Ihre Meinungen und Anregungen zu diesem Angebot und wünschen Ihnen viel Spaß bei der Lektüre ...

>> Zum Feedback-Formular

Inhalt

Danksagung
Über dieses Buch
Vorwort

1 Einleitung

1.1 Wozu eine weitere Sprache?
1.2 Die Entwicklungsziele bei C#
   1.2.1 Komponentensoftware
   1.2.2 Robuste und langlebige Software
   1.2.3 Software für das wirkliche Leben

Rheinwerk Computing

2 Grundlagen der objektorientierten Programmierung

2.1 Was ist ein Objekt?
2.2 Vererbung
2.3 Das Prinzip des Containments
2.4 Polymorphismus und virtuelle Funktionen
2.5 Kapselung und Sichtbarkeit

Rheinwerk Computing

3 Die .NET-Laufzeitumgebung

3.1 Die Ausführungsumgebung
   3.1.1 Ein einfacheres Programmiermodell
   3.1.2 Sicherheit
   3.1.3 Unterstützung für leistungsfähige Tools
   3.1.4 Bereitstellen, Packen und weitere Funktionen
3.2 Metadaten
3.3 Assemblierung
3.4 Sprachinteroperabilität
3.5 Attribute

Rheinwerk Computing

4 Schnelleinstieg in C#

4.1 Hello, Universe
4.2 Namespaces und Using-Klausel
4.3 Namespace und Assemblierung
4.4 Grundlegende Datentypen
4.5 Klassen, Strukturen und Schnittstellen
4.6 Anweisungen
4.7 Enum
4.8 Zuweisungen und Ereignisse
4.9 Eigenschaften und Indizierer
4.10 Attribute

Rheinwerk Computing

5 Ausnahmebehandlung

5.1 Was ist falsch an Rückgabecodes?
5.2 try und catch
5.3 Die Ausnahmehierarchie
5.4 Übergeben von Ausnahmen an die aufrufende Funktion
   5.4.1 Caller Beware
   5.4.2 Caller Confuse
   5.4.3 Caller Inform
5.5 Benutzerdefinierte Ausnahmeklassen
5.6 Finally
5.7 Effizienz und Overhead
5.8 Entwurfsrichtlinien

Rheinwerk Computing

6 101 -Klassen

6.1 Eine einfache Klasse
6.2 Mitgliedsfunktionen
6.3 Ref- und Out-Parameter
6.4 Überladung

Rheinwerk Computing

7 Basisklassen und Vererbung

7.1 Die Engineer-Klasse
7.2 Einfache Vererbung
7.3 Engineer-Arrays
7.4 Virtuelle Funktionen
7.5 Abstrakte Klassen
7.6 sealed-Schlüsselwort

Rheinwerk Computing

8 Zugriff auf Klassenmitglieder

8.1 Klassenzugriff
8.2 Verwenden von internal für Klassenmitglieder
8.3 internal protected
8.4 Die Beziehung zwischen Klassen- und Mitgliedszugriff

Rheinwerk Computing

9 Mehr zu Klassen

9.1 Verschachtelte Klassen
9.2 Weitere Verschachtelungen
9.3 Erstellung, Initialisierung, Zerstörung
9.4 Erstellungsroutinen
   9.4.1 Initialisierung
   9.4.2 Zerstörungsroutinen
9.5 Überladung und Namensausblendung
   9.5.1 Namensausblendung
9.6 Statische Felder
9.7 Statische Mitgliedsfunktionen
9.8 Statische Erstellungsroutinen
9.9 Konstanten
9.10 Schreibgeschützte Felder
9.11 Private Erstellungsroutinen
9.12 Parameterlisten variabler Länge

Rheinwerk Computing

10 Strukturen (Wertetypen)

10.1 Eine Point-Struktur
10.2 Boxing und Unboxing
10.3 Strukturen und Erstellungsroutinen
10.4 Entwurfsrichtlinien

Rheinwerk Computing

11 Schnittstellen

11.1 Ein einfaches Beispiel
11.2 Arbeiten mit Schnittstellen
11.3 Der as-Operator
11.4 Schnittstellen und Vererbung
11.5 Entwurfsrichtlinien
11.6 Mehrfachimplementierung
   11.6.1 Explizite Schnittstellenimplementierung
   11.6.2 Ausblenden der Implementierung
11.7 Auf Schnittstellen basierende Schnittstellen

Rheinwerk Computing

12 Versionssteuerung mit new und override

12.1 Ein Beispiel zur Versionssteuerung

Rheinwerk Computing

13 Anweisungen und Ausführungsverlauf

13.1 Auswahlanweisungen
   13.1.1 If
   13.1.2 Switch
13.2 Wiederholungsanweisungen
   13.2.1 While
   13.2.2 Do
   13.2.3 For
   13.2.4 Foreach
13.3 Sprunganweisungen
   13.3.1 Break
   13.3.2 Continue
   13.3.3 Goto
   13.3.4 Return
13.4 Feste Zuordnung
   13.4.1 Feste Zuordnungen und Arrays

Rheinwerk Computing

14 Bereiche lokaler Variablen


Rheinwerk Computing

15 Operatoren

15.1 Rangfolge der Operatoren
15.2 Integrierte Operatoren
15.3 Benutzerdefinierte Operatoren
15.4 Numerische Umwandlungen
15.5 Arithmetische Operatoren
15.6 Unär Plus (+)
15.7 Unär Minus (-)
   15.7.1 Addition (+)
   15.7.2 Subtraktion (-)
   15.7.3 Multiplikation (*)
   15.7.4 Division (/)
   15.7.5 Restbetrag (%)
   15.7.6 Umschaltung (<< und >>)
   15.7.7 Wertezuwachs und -abname (++ und --)
15.8 Relationale und logische Operatoren
   15.8.1 Logische Negation (!)
   15.8.2 Relationale Operatoren
   15.8.3 Logische Operatoren
   15.8.4 Bedingungsoperator (?:)
15.9 Zuweisungsoperatoren
   15.9.1 Einfache Zuweisung
   15.9.2 Komplexe Zuweisung
15.10 Typenoperatoren
   15.10.1 Typeof
   15.10.2 Is
   15.10.3 As

Rheinwerk Computing

16 Konvertierungen

16.1 Numerische Typen
   16.1.1 Konvertierungen und Mitgliedsermittlung
   16.1.2 Explizite numerische Konvertierungen
   16.1.3 Geprüfte Konvertierungen
16.2 Konvertierung von Klassen (Verweistypen)
   16.2.1 Konvertierung in die Basisklasse eines Objekts
   16.2.2 Konvertierung in eine Schnittstelle, die das Objekt implementiert
   16.2.3 Konvertierung in eine Schnittstelle, die das Objekt möglicherweise implementiert
   16.2.4 Konvertierung von einem Schnittstellentyp in einen anderen
16.3 Konvertierung von Strukturen (Wertetypen)

Rheinwerk Computing

17 Arrays

17.1 Arrayinitialisierung
17.2 Mehrdimensionale und unregelmäßige Arrays
   17.2.1 Mehrdimensionale Arrays
   17.2.2 Unregelmäßige Arrays
17.3 Arrays vom Verweistyp
17.4 Arraykonvertierungen
17.5 System.Array-Typ
   17.5.1 Sortieren und Suchen
   17.5.2 Reverse

Rheinwerk Computing

18 Zeichenfolgen

18.1 Operationen
18.2 Konvertieren von Objekten in Zeichenfolgen
18.3 Ein Beispiel
18.4 StringBuilder
18.5 Reguläre Ausdrücke
   18.5.1 Komplexere Syntaxanalyse

Rheinwerk Computing

19 Eigenschaften

19.1 Zugriffsroutinen
19.2 Eigenschaften und Vererbung
19.3 Verwendung von Eigenschaften
19.4 Nebeneffekte beim Setzen von Werten
19.5 Statische Eigenschaften
19.6 Eigenschafteneffizienz

Rheinwerk Computing

20 Indizierer

20.1 Indizierung mit einem integer-Index
20.2 Indizierer und foreach
20.3 Entwurfsrichtlinien

Rheinwerk Computing

21 Aufzählungsbezeichner

21.1 Eine Beispielaufzählung
21.2 Basistypen für Aufzählungsbezeichner
21.3 Initialisierung
21.4 Bitflagaufzählungen
21.5 Konvertierungen

Rheinwerk Computing

22 Attribute

22.1 Verwenden von Attributen
   22.1.1 Noch ein paar Details
22.2 Einlegen von Attributen
22.3 Eigene Attribute
   22.3.1 Attributverwendung
   22.3.2 Attributparameter
22.4 Attributreflektion

Rheinwerk Computing

23 Zuweisungen

23.1 Verwenden von Zuweisungen
23.2 Zuweisungen als statische Mitglieder
23.3 Zuweisungen als statische Eigenschaften

Rheinwerk Computing

24 Ereignisse

24.1 Ein Ereignis zu einer neuen E-Mail-Nachricht
24.2 Das Ereignisfeld
24.3 Multicastereignisse
24.4 Selten verwendete Ereignisse

Rheinwerk Computing

25 Benutzerdefinierte Konvertierung

25.1 Ein einfaches Beispiel
25.2 Prä- und Postkonvertierungen
25.3 Konvertierungen zwischen Strukturen
25.4 Klassen und Prä-/Postkonvertierungen
25.5 Entwurfsrichtlinien
   25.5.1 Implizite Konvertierungen sind sichere Konvertierungen
   25.5.2 Die Konvertierung im komplexeren Typ definieren
   25.5.3 Eine Konvertierung aus oder in eine(r) Hierarchie
   25.5.4 Konvertierungen nur bei Bedarf verwenden
   25.5.5 Konvertierungen, die in anderen Sprachen funktionieren
25.6 So funktioniert’s
   25.6.1 Konvertierungssuche

Rheinwerk Computing

26 Operatorüberladung

26.1 Unäre Operatoren
26.2 Binäre Operatoren
26.3 Ein Beispiel
26.4 Beschränkungen
26.5 Richtlinien

Rheinwerk Computing

27 Weitere Sprachdetails

27.1 Die Main-Funktion
   27.1.1 Zurückgeben eines int-Status
   27.1.2 Befehlszeilenparameter
   27.1.3 Mehrere Main-Funktionen
27.2 Vorverarbeitung
   27.2.1 Vorverarbeitungsdirektiven
   27.2.2 Andere Präprozessorfunktionen
27.3 Lexikalische Details
   27.3.1 Bezeichner
   27.3.2 Literale
   27.3.3 Kommentare

Rheinwerk Computing

28 Freunde finden mit den .NET-Frameworks

28.1 Was alle Objekte tun
   28.1.1 ToString
   28.1.2 Equals
28.2 Hashes und GetHashCode()

Rheinwerk Computing

29 System.Array und die Auflistungsklassen

29.1 Sortieren und Suchen
   29.1.1 Implementieren von IComparable
   29.1.2 Verwenden von IComparer
   29.1.3 IComparer als Eigenschaft
   29.1.4 Überladen relationaler Operatoren
   29.1.5 Erweiterte Verwendung von Hashes
29.2 ICloneable
29.3 Entwurfsrichtlinien
   29.3.1 Funktionen und Schnittstellen der Framework-Klassen

Rheinwerk Computing

30 Interoperabilität

30.1 Benutzen von COM-Objekten
30.2 Von COM-Objekten benutzt werden
30.3 Aufrufen systemeigener DLL-Funktionen

Rheinwerk Computing

31 Überblick über die .NET-Frameworks

31.1 Numerische Formatierung
   31.1.1 Standardformatzeichenfolgen
   31.1.2 Benutzerdefinierte Formatzeichenfolgen
31.2 Formatierung von Datum und Uhrzeit
31.3 Benutzerdefinierte Objektformatierung
   31.3.1 Neue Formatierung für vorhandene Typen
31.4 Numerische Syntaxanalyse
31.5 XML-Verwendung in C#
31.6 Eingabe/Ausgabe
   31.6.1 Binärklassen
   31.6.2 Textklassen
   31.6.3 XML
   31.6.4 Lese- und Schreibvorgänge für Dateien
   31.6.5 Durchsuchen von Verzeichnissen
31.7 Serialisierung
31.8 Threading
31.9 Lesen von Webseiten

Rheinwerk Computing

32 C# im Detail

32.1 C#-Stil
   32.1.1 Benennung
   32.1.2 Kapselung
32.2 Richtlinien für Bibliotheksautoren
   32.2.1 CLS-Kompatibilität
32.3 Benennung von Klassen
32.4 Unsicherer Code
   32.4.1 Strukturlayout
32.5 XML-Dokumentation
   32.5.1 Compilerunterstützungstags
   32.5.2 XML-Dokumentationstags
32.6 Speicherbereinigung in der .NET-Laufzeitumgebung
   32.6.1 Zuordnung
   32.6.2 Kennzeichnen und Komprimieren
   32.6.3 Generationen
   32.6.4 Finalisierung
   32.6.5 Steuerung des Verhaltens der Speicherbereinigung
32.7 Weitergehende Reflektion
   32.7.1 Auflisten aller Typen in einer Assemblierung
   32.7.2 Ermitteln von Mitgliedern
   32.7.3 Aufrufen von Funktionen
32.8 Optimierung

Rheinwerk Computing

33 Defensive Programmierung

33.1 Bedingte Methoden
33.2 Debug- und Trace-Klassen
33.3 Assert-Anweisungen
33.4 Debug- und Trace-Ausgabe
33.5 Verwenden von Switch-Klassen zur Steuerung von Debug und Trace
33.6 BooleanSwitch
   33.6.1 TraceSwitch
   33.6.2 Benutzerdefinierte Switch-Klassen

Rheinwerk Computing

34 Die Befehlszeile

34.1 Einfache Verwendung
34.2 Antwortdateien
34.3 Befehlszeilenoptionen

Rheinwerk Computing

35 C# im Vergleich zu anderen Sprachen

35.1 Unterschiede zwischen C# und C/C++
   35.1.1 Eine verwaltete Umgebung
   35.1.2 .NET-Objekte
   35.1.3 C#-Anweisungen
   35.1.4 Attribute
   35.1.5 Versionssteuerung
   35.1.6 Codeorganisation
   35.1.7 Fehlende C++-Funktionen
35.2 Unterschiede zwischen C# und Java
   35.2.1 Datentypen
   35.2.2 Erweitern des Typensystems
   35.2.3 Klassen
   35.2.4 Schnittstellen
   35.2.5 Eigenschaften und Indizierer
   35.2.6 Zuweisungen und Ereignisse
   35.2.7 Attribute
   35.2.8 Anweisungen
35.3 Unterschiede zwischen C# und Visual Basic 6
35.4 Codeaussehen
   35.4.1 Datentypen und Variablen
   35.4.2 Operatoren und Ausdrücke
   35.4.3 Klassen, Typen, Funktionen und Schnittstellen
   35.4.4 Steuerung und Programmfluss
   35.4.5 Select Case
   35.4.6 On Error
   35.4.7 Fehlende Anweisungen
35.5 Weitere .NET-Sprachen

Rheinwerk Computing

36 C# und die Zukunft


Rheinwerk Computing

Index

   

Visual C# 2012

Professionell entwickeln mit Visual C# 2012

Windows Presentation Foundation

Schrödinger programmiert C++

C++ Handbuch




Copyright © Rheinwerk Verlag GmbH 2001 - 2002
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, fon: 0228.42150.0, fax 0228.42150.77, service@rheinwerk-verlag.de