Detailliertes Inhaltsverzeichnis
- Vorwort
- Einführung
- §1 Umfang
- §2 Normative Referenzen
- §3 Bedingungen und Definitionen
- §4 Allgemeine Beschreibung
- §5 Konformität
- §6 Lexikalische Struktur
- §6.1 Programme
- §6.2 Grammatiken
- §6.3 Lexikalische Analyse
- §6.4 Token
- §6.5 Vorverarbeitungsrichtlinien
- §6.5.1 Allgemein
- §6.5.2 Symbole für die bedingte Kompilierung
- §6.5.3 Vorverarbeitungsausdrücke
- §6.5.4 Definitionsrichtlinien
- §6.5.5 Richtlinien zur bedingten Kompilierung
- §6.5.6 Diagnoserichtlinien
- §6.5.7 Regionsrichtlinien
- §6.5.8 Leitungsrichtlinien
- §6.5.9 Nullfähige Richtlinie
- §6.5.10 Pragma-Richtlinien
- §7 Grundkonzepte
- §8 Typen
- §8.1 Allgemein
- §8.2 Referenztypen
- §8.2.1 Allgemein
- §8.2.2 Klassentypen
- §8.2.3 Der object-Typ
- §8.2.4 Der dynamic-Typ
- §8.2.5 Der string-Typ
- §8.2.6 Schnittstellentypen
- §8.2.7 Arraytypen
- §8.2.8 Delegattypen
- §8.3 Werttypen
- §8.3.1 Allgemein
- §8.3.2 Der System.ValueType-Typ
- §8.3.3 Standardkonstruktoren
- §8.3.4 Strukturtypen
- §8.3.5 Einfache Typen
- §8.3.6 Integraltypen
- §8.3.7 Gleitkommatypen
- §8.3.8 Der Dezimaltyp
- §8.3.9 Der Bool-Typ
- §8.3.10 Enumerationstypen
- §8.3.11 Tupeltypen
- §8.3.12 Nullwertetypen
- §8.3.13 Boxen und Entboxen
- §8.4 Konstruierte Typen
- §8.5 Typparameter
- §8.6 Ausdrucksstrukturtypen
- §8.7 Der dynamische Typ
- §8.8 Nicht verwaltete Typen
- §8.9 Referenztypen und Nullierbarkeit
- §9 Variablen
- §9.1 Allgemein
- §9.2 Variable Kategorien
- §9.3 Standardwerte
- §9.4 Bestimmte Zuordnung
- §9.4.1 Allgemein
- §9.4.2 Anfangs zugewiesene Variablen
- §9.4.3 Anfänglich nicht zugewiesene Variablen
- §9.4.4 Genaue Regeln zur Bestimmung der eindeutigen Zuordnung
- §9.4.4.1 Allgemein
- §9.4.4.2 Allgemeine Regeln für Erklärungen
- §9.4.4.3 Blockanweisungen, aktivierte und deaktivierte Anweisungen
- §9.4.4.4 Ausdrucksanweisungen
- §9.4.4.5 Erklärungserklärungen
- §9.4.4.6 If-Anweisungen
- §9.4.4.7 Switch-Anweisungen
- §9.4.4.8 Erklärungen
- §9.4.4.9 Do-Anweisungen
- §9.4.4.10 Für Erklärungen
- §9.4.4.11 Break, continue, and goto statements
- §9.4.4.12 Throw-Anweisungen
- §9.4.4.13 Rückgabeanweisungen
- §9.4.4.14 Try-catch-Anweisungen
- §9.4.4.15 Try-finally-Anweisungen
- §9.4.4.16 Try-catch-finally-Anweisungen
- §9.4.4.17 Foreach-Anweisungen
- §9.4.4.18 Using-Anweisungen
- §9.4.4.19 Lock-Anweisungen
- §9.4.4.20 Renditeauszüge
- §9.4.4.21 Allgemeine Regeln für Konstantenausdrücke
- §9.4.4.22 Allgemeine Regeln für einfache Ausdrücke
- §9.4.4.23 Allgemeine Regeln für Ausdrücke mit eingebetteten Ausdrücken
- §9.4.4.24 Aufrufausdrücke und Objekterstellungsausdrücke
- §9.4.4.25 Einfache Zuordnungsausdrücke
- §9.4.4.26 && Ausdrücke
- §9.4.4.27 || Ausdrücke
- §9.4.4.28 ! Ausdrücken
- §9.4.4.29 ?? Ausdrücken
- §9.4.4.30 ?: Ausdrücke
- §9.4.4.31 Anonyme Funktionen
- §9.4.4.32 Ausdrücke auslösen
- §9.4.4.33 Regeln für Variablen in lokalen Funktionen
- §9.4.4.34 ist Musterausdrücke
- §9.5 Variablenverweise
- §9.6 Atomität variabler Bezüge
- §9.7 Referenzvariablen und Rückgaben
- §10 Konvertierungen
- §10.1 Allgemein
- §10.2 Implizite Konvertierungen
- §10.2.1 Allgemein
- §10.2.2 Identitätskonvertierung
- §10.2.3 Implizite numerische Konvertierungen
- §10.2.4 Implizite Enumerationskonvertierungen
- §10.2.5 Implizite interpolierte Zeichenfolgenkonvertierungen
- §10.2.6 Implizite nullfähige Konvertierungen
- §10.2.7 Nullliteralumwandlungen
- §10.2.8 Implizite Referenzkonvertierungen
- §10.2.9 Boxing Konvertierungen
- §10.2.10 Implizite dynamische Konvertierungen
- §10.2.11 Konvertierung impliziter Konstantenausdruck
- §10.2.12 Implizite Konvertierungen mit Typparametern
- §10.2.13 Implizite Tupelkonvertierungen
- §10.2.14 Benutzerdefinierte implizite Konvertierungen
- §10.2.15 Anonyme Funktionskonvertierungen und Methodengruppenkonvertierungen
- §10.2.16 Standardliteralkonvertierungen
- §10.2.17 Implizite Auslösen von Konvertierungen
- §10.3 Explizite Konvertierungen
- §10.3.1 Allgemein
- §10.3.2 Explizite numerische Konvertierungen
- §10.3.3 Explizite Enumerationskonvertierungen
- §10.3.4 Explizite nullfähige Konvertierungen
- §10.3.5 Explizite Referenzkonvertierungen
- §10.3.6 Explizite Tupelkonvertierungen
- §10.3.7 Unboxing Konvertierungen
- §10.3.8 Explizite Konvertierungen mit Typparametern
- §10.3.9 Benutzerdefinierte explizite Konvertierungen
- §10.4 Standardkonvertierungen
- §10.5 Benutzerdefinierte Konvertierungen
- §10.6 Konvertierungen mit nullfähigen Typen
- §10.7 Anonyme Funktionskonvertierungen
- §10.8 Methodengruppenkonvertierungen
- §11 Muster und Musterabgleich
- §12 Ausdrücke
- §12.1 Allgemein
- §12.2 Ausdrucksklassifizierungen
- §12.3 Statische und dynamische Bindung
- §12.4 Betreiber
- §12.5 Mitgliedssuche
- §12.6 Funktionsmitglieder
- §12.6.1 Allgemein
- §12.6.2 Argumentlisten
- §12.6.3 Typ-Ableitung
- §12.6.3.1 Allgemein
- §12.6.3.2 Die erste Phase
- §12.6.3.3 Die zweite Phase
- §12.6.3.4 Eingabetypen
- §12.6.3.5 Ausgabetypen
- §12.6.3.6 Abhängigkeit
- §12.6.3.7 Ausgabetypausschlüsse
- §12.6.3.8 Explizite Parametertyp-Rückschlüsse
- §12.6.3.9 Genaue Rückschlüsse
- §12.6.3.10 Untergebundene Rückschlüsse
- §12.6.3.11 Obergebundene Rückschlüsse
- §12.6.3.12 Fixierung
- §12.6.3.13 Verzögerter Rückgabetyp
- §12.6.3.14 Typferenz für die Konvertierung von Methodengruppen
- §12.6.3.15 Suchen des am häufigsten verwendeten Typs einer Gruppe von Ausdrücken
- §12.6.4 Überladungsauflösung
- §12.6.4.1 Allgemein
- §12.6.4.2 Anwendbares Funktionsmitglied
- §12.6.4.3 Besseres Funktionselement
- §12.6.4.4 Besserer Parameterübergabemodus
- §12.6.4.5 Bessere Konvertierung von Ausdruck
- §12.6.4.6 Exakt übereinstimmenden Ausdruck
- §12.6.4.7 Bessere Konvertierungsziel
- §12.6.4.8 Überladung in generischen Klassen
- §12.6.5 Kompilierungszeitüberprüfung dynamischer Memberaufrufe
- §12.6.6 Funktionselementaufruf
- §12.7 Dekonstruktion
- §12.8 Primäre Ausdrücke
- §12.8.1 Allgemein
- §12.8.2 Literale
- §12.8.3 Interpolierte Zeichenfolgenausdrücke
- §12.8.4 Einfache Namen
- §12.8.5 Klammerungsausdrücke
- §12.8.6 Tupelausdrücke
- §12.8.7 Mitgliedszugriff
- §12.8.8 Null bedingter Memberzugriff
- §12.8.9 Null-verzeihende Ausdrücke
- §12.8.10 Aufrufausdrücke
- §12.8.10.1 Allgemein
- §12.8.10.2 Methodenaufrufe
- §12.8.10.3 Erweiterungsmethodeaufrufe
- §12.8.10.4 Stellvertretungsaufrufe
- §12.8.11 Null bedingter Aufrufausdruck
- §12.8.12 Elementzugriff
- §12.8.12.1 Allgemein
- §12.8.12.2 Arrayzugriff
- §12.8.12.3 Indexerzugriff
- §12.8.13 Null Bedingter Elementzugriff
- §12.8.14 Dieser Zugriff
- §12.8.15 Basiszugriff
- §12.8.16 Postfix-Inkrementierungs- und Dekrementoperatoren
- §12.8.17 Der neue Betreiber
- §12.8.17.1 Allgemein
- §12.8.17.2 Objekterstellungsausdrücke
- §12.8.17.3 Objektinitialisierer
- §12.8.17.4 Sammlungsinitialisierer
- §12.8.17.5 Arrayerstellungsausdrücke
- §12.8.17.6 Stellvertretungserstellungsausdrücke
- §12.8.17.7 Ausdrücke für die Erstellung anonymer Objekte
- §12.8.18 Der Typofoperator
- §12.8.19 Der Sizeof-Operator
- §12.8.20 Die aktivierten und deaktivierten Operatoren
- §12.8.21 Standardwertausdrücke
- §12.8.22 Stapelzuweisung
- §12.8.23 Der Nameofoperator
- §12.8.24 Ausdrücke anonymer Methoden
- §12.9 Unäre Betreiber
- §12.10 Arithmetische Operatoren
- §12.11 Schichtoperatoren
- §12.12 Relationale und Typprüfoperatoren
- §12.12.1 Allgemein
- §12.12.2 Ganzzahlige Vergleichsoperatoren
- §12.12.3 Gleitkommavergleichsoperatoren
- §12.12.4 Dezimalvergleichsoperatoren
- §12.12.5 Boolesche Gleichheitsoperatoren
- §12.12.6 Enumerationsvergleichsoperatoren
- §12.12.7 Referenztypgleichheitsoperatoren
- §12.12.8 Zeichenfolgengleichstellungsoperatoren
- §12.12.9 Stellvertretungs-Gleichheitsoperatoren
- §12.12.10 Gleichheitsoperatoren zwischen Nullwerttypen und dem Nullliteral
- §12.12.11 Tuple-Gleichheitsoperatoren
- §12.12.12 Der Operator ist
- §12.12.12.1 Der Is-Type-Operator
- §12.12.12.2 Der Is-Musteroperator
- §12.12.13 Der Betreiber
- §12.13 Logische Operatoren
- §12.13.1 Allgemein
- §12.13.2 Logische Operatoren integer
- Logische Operatoren der §12.13.3-Aufzählung
- §12.13.4 Boolesche logische Operatoren
- §12.13.5 Nullable Boolean & und | Operatoren
- §12.14 Bedingte logische Operatoren
- §12.15 Der Null-Verkohlungsoperator
- §12.16 Der Ausdrucksoperator "Auslösen"
- §12.17 Deklarationsausdrücke
- §12.18 Bedingter Operator
- §12.19 Ausdrücke der anonymen Funktion
- §12.19.1 Allgemein
- §12.19.2 Anonyme Funktionssignaturen
- §12.19.3 Anonyme Funktionskörper
- §12.19.4 Überladungsauflösung
- §12.19.5 Anonyme Funktionen und dynamische Bindung
- §12.19.6 Äußere Variablen
- §12.19.6.1 Allgemein
- §12.19.6.2 Erfasste äußere Variablen
- §12.19.6.3 Instanziierung lokaler Variablen
- §12.19.7 Auswertung anonymer Funktionsausdrücke
- §12.19.8 Implementierungsbeispiel
- §12.20 Abfrageausdrücke
- §12.20.1 Allgemein
- §12.20.2 Mehrdeutigkeiten in Abfrageausdrücken
- §12.20.3 Abfrageausdruckübersetzung
- §12.20.3.1 Allgemein
- §12.20.3.2 Abfrageausdrücke mit Fortsetzungen
- §12.20.3.3 Explizite Bereichsvariablentypen
- §12.20.3.4 Abfrageausdrücke degenerieren
- §12.20.3.5 Aus, wobei, verknüpfungs- und orderby-Klauseln
- §12.20.3.6 Auswahlklauseln
- §12.20.3.7 Gruppenklauseln
- §12.20.3.8 Transparente Bezeichner
- §12.20.4 Das Abfrageausdruckmuster
- §12.21 Zuordnungsoperatoren
- §12.22 Ausdruck
- §12.23 Konstantenausdrücke
- §12.24 Boolesche Ausdrücke
- §13 Erklärungen
- §13.1 Allgemein
- §13.2 Endpunkte und Reichweite
- §13.3 Blöcke
- §13.4 Die leere Anweisung
- §13.5 Bezeichnungsanweisungen
- §13.6 Erklärungserklärungen
- §13.7 Ausdrucksanweisungen
- §13.8 Auswahlanweisungen
- §13.9 Iterationsanweisungen
- §13.10 Jump-Anweisungen
- §13.11 Die Try-Anweisung
- §13.12 Die aktivierten und deaktivierten Anweisungen
- §13.13 Die Sperrerklärung
- §13.14 Die using-Anweisung
- §13.15 Die Renditeerklärung
- §14 Namespaces
- §15 Klassen
- §15.1 Allgemein
- §15.2 Klassendeklarationen
- §15.2.1 Allgemein
- §15.2.2 Klassifizierer
- §15.2.2.1 Allgemein
- §15.2.2.2 Abstrakte Klassen
- §15.2.2.3 Versiegelte Klassen
- §15.2.2.4 Statische Klassen
- §15.2.2.4.1 Allgemein
- §15.2.2.4.2 Verweisen auf statische Klassentypen
- §15.2.3 Typparameter
- §15.2.4 Klassenbasisspezifikation
- §15.2.5 Einschränkungen des Typparameters
- §15.2.6 Klassentext
- §15.2.7 Teilerklärungen
- §15.3 Klassenmitglieder
- §15.3.1 Allgemein
- §15.3.2 Der Instanztyp
- §15.3.3 Elemente konstruierter Typen
- §15.3.4 Vererbung
- §15.3.5 Der neue Modifizierer
- §15.3.6 Zugriffsmodifizierer
- §15.3.7 Bestandteiltypen
- §15.3.8 Statische und Instanzmitglieder
- §15.3.9 Geschachtelte Typen
- §15.3.10 Reservierte Mitgliedernamen
- §15.3.10.1 Allgemein
- §15.3.10.2 Mitgliedsnamen für Eigenschaften reserviert
- §15.3.10.3 Mitgliedsnamen für Ereignisse reserviert
- §15.3.10.4 Mitgliedsnamen, die für Indexer reserviert sind
- §15.3.10.5 Mitgliedsnamen für Finalizer reserviert
- §15.3.10.6 Methodennamen, die für Operatoren reserviert sind
- §15.4 Konstanten
- §15.5 Felder
- §15.6 Methoden
- §15.6.1 Allgemein
- §15.6.2 Methodenparameter
- §15.6.2.1 Allgemein
- §15.6.2.2 Wertparameter
- §15.6.2.3 By-Reference-Parameter
- §15.6.2.3.1 Allgemein
- §15.6.2.3.2 Eingabeparameter
- §15.6.2.3.3 Referenzparameter
- §15.6.2.3.4 Ausgabeparameter
- §15.6.2.4 Parameterarrays
- §15.6.3 Statische und Instanzmethoden
- §15.6.4 Virtuelle Methoden
- §15.6.5 Überschreibungsmethoden
- §15.6.6 Versiegelte Methoden
- §15.6.7 Abstrakte Methoden
- §15.6.8 Externe Methoden
- §15.6.9 Teilmethoden
- §15.6.10 Erweiterungsmethoden
- §15.6.11 Methodenkörper
- §15.7 Eigenschaften
- §15.8 Veranstaltungen
- §15.9 Indexer
- §15.10 Betreiber
- §15.11 Instanzkonstruktoren
- §15.12 Statische Konstruktoren
- §15.13 Finalizer
- §15.14 Iteratoren
- §15.14.1 Allgemein
- §15.14.2 Enumeratorschnittstellen
- §15.14.3 Aufzählbare Schnittstellen
- §15.14.4 Ertragtyp
- §15.14.5 Enumeratorobjekte
- §15.14.5.1 Allgemein
- §15.14.5.2 Die MoveNext-Methode
- §15.14.5.3 Die aktuelle Eigenschaft
- §15.14.5.4 Die Dispose-Methode
- §15.14.6 Aufzählbare Objekte
- §15.14.6.1 Allgemein
- §15.14.6.2 Die GetEnumerator-Methode
- §15.15 Asynchrone Funktionen
- §16 Struktur
- §16.1 Allgemein
- §16.2 Strukturerklärungen
- §16.3 Strukturmitglieder
- §16.4 Klassen- und Strukturunterschiede
- §16.4.1 Allgemein
- §16.4.2 Wertsemantik
- §16.4.3 Vererbung
- §16.4.4 Zuordnung
- §16.4.5 Standardwerte
- §16.4.6 Boxen und Entboxen
- §16.4.7 Bedeutung
- §16.4.8 Feldinitialisierer
- §16.4.9 Konstruktoren
- §16.4.10 Statische Konstruktoren
- §16.4.11 Automatisch implementierte Eigenschaften
- §16.4.12 Einschränkung sicherer Kontext
- §16.4.12.1 Allgemein
- §16.4.12.2 Parametersicherer Kontext
- §16.4.12.3 Lokaler sicherer Kontext für Variable
- §16.4.12.4 Feldsicherer Kontext
- §16.4.12.5 Betreiber
- §16.4.12.6 Methoden und Eigentumsaufrufe
- §16.4.12.7 stackalloc
- §16.4.12.8 Konstruktoraufrufe
- §17 Arrays
- §18 Schnittstellen
- §18.1 Allgemein
- §18.2 Schnittstellendeklarationen
- §18.3 Schnittstellenkörper
- §18.4 Schnittstellenmitglieder
- §18.5 Qualifizierte Schnittstellenmitgliedsnamen
- §18.6 Schnittstellenimplementierungen
- §18.6.1 Allgemein
- §18.6.2 Explizite Schnittstellenmemimplementierungen
- §18.6.3 Eindeutigkeit implementierter Schnittstellen
- §18.6.4 Umsetzung generischer Methoden
- §18.6.5 Schnittstellenzuordnung
- §18.6.6 Schnittstellenimplementierungsvererbung
- §18.6.7 Schnittstellenumsetzung
- §18.6.8 Abstrakte Klassen und Schnittstellen
- §19 Enumerationen
- §20 Stellvertretungen
- §21 Ausnahmen
- §22 Attribute
- §22.1 Allgemein
- §22.2 Attributklassen
- §22.3 Attributspezifikation
- §22.4 Attributinstanzen
- §22.5 Reservierte Attribute
- §22.5.1 Allgemein
- §22.5.2 Das Attribut "AttributeUsage"
- §22.5.3 Das Attribut "Bedingt"
- §22.5.4 Das veraltete Attribut
- §22.5.5 Das AsyncMethodBuilder-Attribut
- §22.5.6 Attribute für Anruferinformationen
- §22.5.7 Codeanalyseattribute
- §22.5.7.1 Allgemein
- §22.5.7.2 Das AllowNull-Attribut
- §22.5.7.3 Das Attribut "DisallowNull"
- §22.5.7.4 Das Attribut DoesNotReturn
- §22.5.7.5 Das Attribut DoesNotReturnIf
- §22.5.7.6 Das "MaybeNull"-Attribut
- §22.5.7.7 Das Attribut "MaybeNullWhen"
- §22.5.7.8 Das Attribut "NotNull"
- §22.5.7.9 Das Attribut "NotNullIfNotNull"
- §22.5.7.10 Das Attribut "NotNullWhen"
- §22.6 Attribute für die Interoperabilität
- §23 Unsicherer Code
- §A Grammatik
- §B Portabilitätsprobleme
- §C Standardbibliothek
- §D Dokumentationskommentare
- §D.1 Allgemein
- §D.2 Einführung
- §D.3 Empfohlene Tags
- §D.3.1 Allgemein
- §D.3.2<c>
- §D.3.3-Code<>
- §D.3.4-Beispiel<>
- §D.3.5<Ausnahme>
- §D.3.6<einschließen>
- §D.3.7<Liste>
- §D.3.8<Absatz>
- §D.3.9<Param>
- §D.3.10<paramref>
- §D.3.11<Berechtigung>
- §D.3.12<Anmerkungen>
- §D.3.13<gibt zurück.>
- §D.3.14<siehe>
- §D.3.15<seealso>
- §D.3.16<Zusammenfassung>
- §D.3.17<typeparam>
- §D.3.18<typeparamref>
- §D.3.19-Wert<>
- §D.4 Verarbeitung der Dokumentationsdatei
- §D.4.1 Allgemein
- §D.4.2 ID-Zeichenfolgenformat
- Beispiele für §D.4.3 ID-Zeichenfolgen
- §D.5 Ein Beispiel
- §E Literaturverzeichnis
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
ECMA C# draft specification