Suchen und Finden
Service
C# 6.0 - kurz & gut
Joseph Albahari, Ben Albahari
Verlag O'Reilly Verlag, 2016
ISBN 9783960100461 , 232 Seiten
4. Auflage
Format PDF, ePUB, OL
Kopierschutz Wasserzeichen
Inhalt
4
C# 6.0 – kurz & gut
6
Ein erstes C#-Programm
7
Kompilation
9
Syntax
10
Bezeichner und Schlüsselwörter
11
Konflikte vermeiden
12
Kontextuelle Schlüsselwörter
12
Literale, Satzzeichen und Operatoren
13
Kommentare
13
Typgrundlagen
14
Vordefinierte Typen
14
Benutzerdefinierte Typen
15
Member eines Typs
16
Symmetrie vordefinierter und benutzerdefinierter Typen
16
Konstruktoren und Instanziierung
17
Instanz-Member versus statische Member
17
Das Schlüsselwort public
18
Umwandlungen
18
Werttypen vs. Referenztypen
19
Werttypen
19
Referenztypen
20
Null
22
Die Einteilung der vordefinierten Typen
23
Numerische Typen
24
Numerische Literale
25
Typableitung bei numerischen Literalen
25
Numerische Suffixe
25
Numerische Umwandlung
26
Ganzzahlige Umwandlungen
26
Reelle Umwandlungen
26
Reelle Typen in ganzzahlige Typen umwandeln
26
Arithmetische Operatoren
27
Inkrement- und Dekrementoperatoren
27
Besondere integrale Operationen
27
Ganzzahlige Division
27
Ganzzahlüberlauf
28
Die Operatoren checked und unchecked
28
Bitoperatoren
29
8- und 16-Bit-Ganzzahlwerte
29
Spezielle Float- und Double-Werte
29
double vs. decimal
30
Rundungsfehler bei reellen Zahlen
31
Der Typ bool und die booleschen Operatoren
31
Gleichheits- und Vergleichsoperatoren
32
Bedingungsoperatoren
32
Strings und Zeichen
33
String-Typ
34
String-Verkettung
35
String-Interpolation (C# 6)
36
String-Vergleiche
36
In Strings suchen
37
Strings verändern
37
Arrays
37
Standard-Elementinitialisierung
39
Mehrdimensionale Arrays
39
Rechteckige Arrays
40
Ungleichförmige Arrays
40
Vereinfachter Array-Initialisierungsausdruck
41
Variablen und Parameter
42
Der Stack und der Heap
42
Stack
42
Heap
42
Sichere Zuweisung
43
Vorgabewerte
44
Parameter
44
Argumente als Wert übergeben
45
Der Modifikator ref
46
Der Modifikator out
46
Der Modifikator params
47
Optionale Parameter
47
Benannte Argumente
48
var – Implizit typisierte lokale Variablen
49
Ausdrücke und Operatoren
50
Zuweisungsausdrücke
51
Priorität und Assoziativität von Operatoren
51
Priorität
51
Linksassoziative Operatoren
52
Rechtsassoziative Operatoren
52
Operatorentabelle
52
Null-Operatoren
55
Null-Verbindungsoperator
56
Null-Bedingungsoperator (C# 6)
56
Anweisungen
57
Deklarationsanweisungen
58
Variablen mit lokaler Geltung
58
Ausdrucksanweisungen
58
Auswahlanweisungen
59
Die if-Anweisung
59
Die else-Klausel
59
Änderung des Programmflusses durch geschweifte Klammern
59
Die switch-Anweisung
60
Iterationsanweisungen
62
while- und do-while-Schleifen
62
for-Schleifen
63
foreach-Schleifen
63
Sprunganweisungen
64
Die break-Anweisung
64
Die continue-Anweisung
64
Die goto-Anweisung
65
Die return-Anweisung
65
Namensräume
65
Die using-Direktive
67
using static (C# 6)
67
Regeln in einem Namensraum
68
Geltung von Namen
68
Namen verdecken
69
Wiederholte Namensräume
69
Der Qualifizierer global::
69
Aliase für Typen und Namensräume
69
Klassen
70
Felder
70
Methoden
71
Expression-bodied Methoden (C# 6)
71
Methoden überladen
72
Instanzkonstruktoren
72
Implizite parameterlose Konstruktoren
73
Nicht öffentliche Konstruktoren
73
Objektinitialisierer
73
Die Referenz this
74
Eigenschaften
75
Expression-bodied Eigenschaften (C# 6)
76
Automatische Eigenschaften
76
Eigenschaftsinitialisierer (C# 6)
77
Sichtbarkeit von get und set
77
Indexer
78
Implementieren eines Indexers
78
Konstanten
79
Statische Konstruktoren
80
Statische Klassen
80
Finalizer
81
Partielle Typen und Methoden
81
Partielle Methoden
82
Der Operator nameof (C# 6)
82
Vererbung
83
Polymorphie
84
Casting und Referenzumwandlungen
84
Upcasting
85
Downcasting
85
Der as-Operator
86
Der is-Operator
86
Virtuelle Funktions-Member
87
Abstrakte Klassen und abstrakte Member
88
Verbergen geerbter Member
88
Funktionen und Klassen versiegeln
89
Das Schlüsselwort base
89
Konstruktoren und Vererbung
90
Reihenfolge von Konstruktor- und Feld-Initialisierung
91
Auflösen beim Überladen
91
Der Typ object
92
Boxing und Unboxing
93
Statische und Laufzeit-Typprüfung
94
Die GetType-Methode und der typeof-Operator
94
Die Member von object
95
Equals, ReferenceEquals und GetHashCode
95
Die ToString-Methode
96
Structs
96
Semantik beim Erzeugen eines Struct
97
Zugriffsmodifikatoren
97
Friend Assemblies
98
Beschneiden der Sichtbarkeit
99
Interfaces
99
Erweitern eines Interface
100
Explizite Implementierung eines Interface
100
Virtuelles Implementieren von Interface-Membern
101
Reimplementieren eines Interface in einer Subklasse
102
Enums
103
Enum-Konvertierungen
103
Flag-Enums
104
Enum-Operatoren
105
Eingebettete Typen
105
Generics
106
Generische Typen
106
Generische Methoden
108
Deklarieren generischer Parameter
109
typeof und ungebundene generische Typen
109
Der generische Wert default
110
Generische Constraints
110
Erstellen abgeleiteter Klassen von generischen Typen
111
Selbstreferenzielle generische Deklarationen
112
Statische Daten
112
Kovarianz
113
Kontravarianz
115
Delegates
115
Schreiben von Plug-in-Methoden mit Delegates
116
Multicast-Delegates
117
Instanzmethoden versus statische Methoden als Ziele
118
Generische Delegate-Typen
118
Die Func- und Action-Delegates
119
Delegate-Kompatibilität
119
Rückgabetypvarianz
120
Parametervarianz
120
Typparametervarianz bei generischen Delegates
121
Events
122
Standard-Event-Muster
124
Event-Accessors
127
Lambda-Ausdrücke
128
Äußere Variablen übernehmen
130
Iterationsvariablen übernehmen
131
Anonyme Methoden
132
try-Anweisungen und Exceptions
133
Die catch-Klausel
135
Exception-Filter (C# 6)
136
Der finally-Block
137
Die using-Anweisung
138
Werfen von Exceptions
138
Eine Exception weiterwerfen
139
Wichtige Eigenschaften von System.Exception
140
Die wichtigsten Exception-Typen
140
Enumeration und Iteratoren
141
Enumeration
141
Collection-Initialisierer
142
Iteratoren
143
Iteratorsemantik
145
Mehrere yield-Anweisungen
145
yield break
146
Sequenzen kombinieren
146
Nullbare Typen
147
Das Struct Nullable
148
Nullbare Konvertierungen
148
Boxing/Unboxing nullbarer Werte
149
Übernommene Operatoren
149
Gleichheitsoperatoren (==, !=)
150
Relationale Operatoren (=, >)
150
Alle anderen Operatoren (+, –, *, /, %, &
, |, ^, >, +, ++, --, !,
Mischen von nullbaren und nicht nullbaren Typen
151
bool? mit den Operatoren & und |
151
Nullbare Typen und Null-Operatoren
152
Überladen von Operatoren
152
Operatorfunktion
153
Überladen von Gleichheits- und Vergleichsoperatoren
154
Eigene implizite und explizite Konvertierungen
155
Erweiterungsmethoden
156
Verketten von Erweiterungsmethoden
156
Mehrdeutigkeit und Auflösung
157
Namensräume
157
Erweiterungsmethoden vs. Instanzmethoden
157
Erweiterungsmethoden vs. Erweiterungsmethoden
157
Anonyme Typen
158
LINQ
158
Grundlagen von LINQ
159
Eine einfache Abfrage
160
Projizieren
161
Take und Skip
161
Elementoperatoren
162
Aggregationsoperatoren
162
Quantifizierer
163
Mengenoperatoren
163
Verzögerte Ausführung
163
Standard-Abfrageoperatoren
165
Abfrageoperatoren verketten
169
Abfrageausdrücke
170
Abfrageausdrücke vs. fließende Syntax
172
Das Schlüsselwort let
173
Abfragefortsetzungen
174
Mehrere Generatoren
175
Verknüpfen
176
GroupJoin
178
Zip
179
Ordnen
180
Gruppieren
181
OfType und Cast
183
Die dynamische Bindung
183
Statische Bindung vs. dynamische Bindung
184
Benutzerdefinierte Bindung
185
Sprachbindung
186
RuntimeBinderException
188
Laufzeitdarstellung von dynamic
188
Dynamische Konvertierungen
189
var vs. dynamic
189
Dynamische Ausdrücke
190
Die dynamische Auflösung überladener Member
190
Nicht aufrufbare Funktionen
192
Attribute
193
Attributklassen
193
Benannte und positionelle Attributparameter
194
Attributziele
194
Angeben mehrerer Attribute
194
Schreiben eigener Attribute
195
Auslesen von Attributen zur Laufzeit
196
Aufrufer-Info-Attribute
197
Asynchrone Funktionen
198
Die Schlüsselwörter await und async
200
Lokale Zustände einfangen
203
Asynchrone Funktionen schreiben
203
Task zurückliefern
204
Parallelität
206
Asynchrone Lambda-Ausdrücke
207
Unsicherer Code und Zeiger
208
Zeigergrundlagen
208
Unsicherer Code
208
Die Anweisung fixed
209
Der Zeiger-auf-Member-Operator
210
Arrays
210
Das Schlüsselwort stackalloc keyword
210
Puffer fester Größe
211
void*
211
Präprozessordirektiven
212
Warnungen
214
XML-Dokumentation
215
Standard-XML-Dokumentations-Tags
216
Index
220
www.oreilly.de
0