Galileo Computing <openbook>
Galileo Computing - Programming the Net
Galileo 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 ...

mailto:stefan.krumbiegel@galileo-press.de

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

Galileo 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

Galileo 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

Galileo 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

Galileo 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

Galileo Computing

6 101 -Klassen

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

Galileo 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

Galileo 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

Galileo 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

Galileo Computing

10 Strukturen (Wertetypen)

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

Galileo 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

Galileo Computing

12 Versionssteuerung mit new und override

12.1 Ein Beispiel zur Versionssteuerung

Galileo 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

Galileo Computing

14 Bereiche lokaler Variablen


Galileo 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

Galileo 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)

Galileo 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

Galileo 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

Galileo 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

Galileo Computing

20 Indizierer

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

Galileo 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

Galileo 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

Galileo Computing

23 Zuweisungen

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

Galileo 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

Galileo 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

Galileo 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

Galileo 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

Galileo 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()

Galileo 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

Galileo Computing

30 Interoperabilität

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

Galileo 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

Galileo 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

Galileo 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

Galileo Computing

34 Die Befehlszeile

34.1 Einfache Verwendung
34.2 Antwortdateien
34.3 Befehlszeilenoptionen

Galileo 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

Galileo Computing

36 C# und die Zukunft


Galileo Computing

Index

   

Einstieg in Visual C# 2005

Visual C#

Einstieg in Visual Basic .NET 2005

Visual Basic .NET 2005






Copyright © Galileo Press 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.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, fon: 0228.42150.0, fax 0228.42150.77, info@galileo-press.de