Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
- 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- und Goto-Anweisungen
- §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.2.18 Konvertierung des Ausdrucks wechseln
-
§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 Eingabetyp-Ableitungen
- §12.6.3.8 Ausgabetypausschlüsse
- §12.6.3.9 Explizite Parametertyp-Ableitungen
- §12.6.3.10 Genaue Rückschlüsse
- §12.6.3.11 Gebundene Rückschlüsse untere Grenzen
- §12.6.3.12 Obergrenzende Rückschlüsse
- §12.6.3.13 Befestigend
- §12.6.3.14 Abgeleiteter Rückgabetyp
- §12.6.3.15 Typreferenz für die Konvertierung von Methodengruppen
- §12.6.3.16 Ermitteln 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 Zeichenfolgenzugriff
- §12.8.12.4 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.2.1 Allgemein
- §12.8.17.2.2 Objektinitialisierer
- §12.8.17.2.3 Sammlungsinitialisierer
- §12.8.17.3 Anonyme Objekterstellungsausdrücke
- §12.8.17.4 Array-Erstellungsausdrücke
- §12.8.17.5 Stellvertretungserstellungsausdrücke
- §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 Bereichsoperator
- §12.11 Switch-Ausdruck
- §12.12 Arithmetische Operatoren
- §12.13 Schichtoperatoren
-
§12.14 Relationale und Typtestoperatoren
- §12.14.1 Allgemein
- §12.14.2 Ganzzahlige Vergleichsoperatoren
- §12.14.3 Gleitkommavergleichsoperatoren
- §12.14.4 Dezimalvergleichsoperatoren
- §12.14.5 Boolesche Gleichheitsoperatoren
- §12.14.6 Enumerationsvergleichsoperatoren
- §12.14.7 Referenztypgleichheitsoperatoren
- §12.14.8 Zeichenfolgengleichstellungsoperatoren
- §12.14.9 Delegieren von Gleichheitsoperatoren
- §12.14.10 Gleichheitsoperatoren zwischen Nullwerttypen und dem Nullliteral
- §12.14.11 Tupelgleichheitsoperatoren
-
§12.14.12 Der Operator ist
- §12.14.12.1 Der Is-Type-Operator
- §12.14.12.2 Der Is-Pattern-Operator
- §12.14.13 Der As-Operator
- §12.15 Logische Operatoren
- §12.16 Bedingte logische Operatoren
- §12.17 Der Null-Koalescingoperator
- §12.18 Der Ausdrucksoperator "Auslösen"
- §12.19 Deklarationsausdrücke
- §12.20 Bedingter Operator
-
§12.21 Anonyme Funktionsausdrücke
- §12.21.1 Allgemein
- §12.21.2 Anonyme Funktionssignaturen
- §12.21.3 Anonyme Funktionstexte
- §12.21.4 Überladungsauflösung
- §12.21.5 Anonyme Funktionen und dynamische Bindung
-
§12.21.6 Äußere Variablen
- §12.21.6.1 Allgemein
- §12.21.6.2 Erfasste äußere Variablen
- §12.21.6.3 Instanziierung lokaler Variablen
- §12.21.7 Auswertung anonymer Funktionsausdrücke
- §12.21.8 Implementierungsbeispiel
-
§12.22 Abfrageausdrücke
- §12.22.1 Allgemein
- §12.22.2 Mehrdeutigkeiten in Abfrageausdrücken
-
§12.22.3 Abfrageausdruckübersetzung
- §12.22.3.1 Allgemein
- §12.22.3.2 Abfrageausdrücke mit Fortsetzungen
- §12.22.3.3 Explizite Bereichsvariablentypen
- §12.22.3.4 Degenerieren von Abfrageausdrücken
- §12.22.3.5 Von, let, where, join and orderby clauses
- §12.22.3.6 Auswählen von Klauseln
- §12.22.3.7 Gruppenklauseln
- §12.22.3.8 Transparente Bezeichner
- §12.22.4 Das Abfrageausdrucksmuster
- §12.23 Zuordnungsoperatoren
- §12.24 Ausdruck
- §12.25 Konstantenausdrücke
- §12.26 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 Partielle Typdeklarationen
-
§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 Asynchrone Funktionen
-
§15.15 Synchrone und asynchrone Iteratoren
- §15.15.1 Allgemein
- §15.15.2 Enumeratorschnittstellen
- §15.15.3 Aufzählbare Schnittstellen
- §15.15.4 Ertragstyp
-
§15.15.5 Enumeratorobjekte
- §15.15.5.1 Allgemein
- §15.15.5.2 Voranschreiten des Enumerators
- §15.15.5.3 Abrufen des aktuellen Werts
- §15.15.5.4 Ressourcen löschen
-
§15.15.6 Aufzählbare Objekte
- §15.15.6.1 Allgemein
- §15.15.6.2 Die GetEnumerator- oder GetAsyncEnumerator-Methode
-
§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 Eigenschaften
- §16.4.12 Methodik
- §16.4.13 Indexer
- §16.4.14 Ereignisse
-
§16.4.15 Einschränkung für sichere Kontexte
- §16.4.15.1 Allgemein
- §16.4.15.2 Parametersicherer Kontext
- §16.4.15.3 Lokaler sicherer Kontext für Variable
- §16.4.15.4 Feldsicherer Kontext
- §16.4.15.5 Betriebspersonal
- §16.4.15.6 Methoden- und Eigenschaftsaufruf
- §16.4.15.7 stackalloc
- §16.4.15.8 Konstruktoraufrufe
- §17 Felder
- §18 Erweiterte Indizierung und Slicing
-
§19 Schnittstellen
- §19.1 Allgemein
- §19.2 Schnittstellendeklarationen
- §19.3 Schnittstellentext
-
§19.4 Schnittstellenmitglieder
- §19.4.1 Allgemein
- §19.4.2 Schnittstellenfelder
- §19.4.3 Schnittstellenmethoden
- §19.4.4 Schnittstelleneigenschaften
- §19.4.5 Schnittstellenereignisse
- §19.4.6 Schnittstellenindexer
- §19.4.7 Schnittstellenoperatoren
- §19.4.8 Statische Schnittstellenkonstruktoren
- §19.4.9 Geschachtelte Schnittstellentypen
- §19.4.10 Spezifische Umsetzung
- §19.4.11 Schnittstellenmitgliedszugriff
- §19.5 Namen qualifizierter Schnittstellenmememer
-
§19.6 Schnittstellenimplementierungen
- §19.6.1 Allgemein
- §19.6.2 Explizite Schnittstellenmememimplementierungen
- §19.6.3 Eindeutigkeit implementierter Schnittstellen
- §19.6.4 Implementierung generischer Methoden
- §19.6.5 Schnittstellenzuordnung
- §19.6.6 Vererbung der Schnittstellenimplementierung
- §19.6.7 Erneute Implementierung der Schnittstelle
- §19.6.8 Abstrakte Klassen und Schnittstellen
- §20 Enumerationen
- §21 Delegierte
- §22 Ausnahmen
-
§23 Attribute
- §23.1 Allgemein
- §23.2 Attributklassen
- §23.3 Attributspezifikation
- §23.4 Attributinstanzen
-
§23.5 Reservierte Attribute
- §23.5.1 Allgemein
- §23.5.2 Das Attribut "AttributeUsage"
- §23.5.3 Das Attribut "Conditional"
- §23.5.4 Das veraltete Attribut
- §23.5.5 Das AsyncMethodBuilder-Attribut
- §23.5.6 Caller-Info-Attribute
-
§23.5.7 Codeanalyseattribute
- §23.5.7.1 Allgemein
- §23.5.7.2 Das AllowNull-Attribut
- §23.5.7.3 Das Attribut "DisallowNull"
- §23.5.7.4 Das Attribut DoesNotReturn
- §23.5.7.5 Das Attribut DoesNotReturnIf
- §23.5.7.6 Das "MaybeNull"-Attribut
- §23.5.7.7 Das Attribut "MaybeNullWhen"
- §23.5.7.8 Das Attribut "NotNull"
- §23.5.7.9 Das Attribut "NotNullIfNotNull"
- §23.5.7.10 Das Attribut "NotNullWhen"
- §23.5.8 Das EnumeratorCancellation-Attribut
- §23.6 Attribute für die Interoperabilität
- §24 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<siehe auch>
- §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