Detaljerad innehållsförteckning
- Förord
- Inledning
- §1 Omfång
- §2 Normativa referenser
- §3 Villkor och definitioner
- §4 Allmän beskrivning
- §5 Överensstämmelse
- §6 Lexikal struktur
- §7 Grundläggande begrepp
- §8 typer
-
§9 Variabler
- §9.1 Allmänt
- §9.2 Variabelkategorier
- §9.3 Standardvärden
-
§9.4 Bestämd tilldelning
- §9.4.1 Allmänt
- §9.4.2 Ursprungligen tilldelade variabler
- §9.4.3 Ursprungligen otilldelade variabler
-
§9.4.4 Exakta regler för att fastställa en bestämd tilldelning
- §9.4.4.1 Allmänt
- §9.4.4.2 Allmänna regler för uttalanden
- §9.4.4.3 Blockinstruktioner, kontrollerade och okontrollerade instruktioner
- §9.4.4.4 Uttrycksuttryck
- §9.4.4.5 Förklaringsutdrag
- §9.4.4.6 Om instruktioner
- §9.4.4.7 Växelinstruktioner
- §9.4.4.8 While statements
- §9.4.4.9 Do-instruktioner
- §9.4.4.10 För instruktioner
- §9.4.4.11 Pausa, fortsätta och goto meddelanden
- §9.4.4.12 Kasta instruktioner
- §9.4.4.13 Returutdrag
- §9.4.4.14 Try-catch-instruktioner
- §9.4.4.15 Try-finally-instruktioner
- §9.4.4.16 Try-catch-finally-instruktioner
- §9.4.4.17 Foreach-instruktioner
- §9.4.4.18 Använda instruktioner
- §9.4.4.19 Låssatser
- §9.4.4.20 Avkastningsutdrag
- §9.4.4.21 Allmänna regler för konstanta uttryck
- §9.4.4.22 Allmänna regler för enkla uttryck
- §9.4.4.23 Allmänna regler för uttryck med inbäddade uttryck
- §9.4.4.24 Anropsuttryck och uttryck för objektskapande
- §9.4.4.25 Enkla tilldelningsuttryck
- §9.4.4.26 && uttryck
- §9.4.4.27 || uttryck
- §9.4.4.28 ! Uttryck
- §9.4.4.29 ?? Uttryck
- §9.4.4.30 ?: uttryck
- §9.4.4.31 Anonyma funktioner
- §9.4.4.32 Kasta uttryck
- §9.4.4.33 Regler för variabler i lokala funktioner
- §9.4.4.34 is-pattern expressions
- §9.5 Variabelreferenser
- §9.6 Atomitet av variabelreferenser
- §9.7 Referensvariabler och returer
-
§10 Konverteringar
- §10.1 Allmänt
-
§10.2 Implicita konverteringar
- §10.2.1 Allmänt
- §10.2.2 Identitetskonvertering
- §10.2.3 Implicita numeriska konverteringar
- §10.2.4 Implicit uppräkningskonverteringar
- §10.2.5 Implicita interpolerade strängkonverteringar
- §10.2.6 Implicita nullbara konverteringar
- §10.2.7 Nullliterala konverteringar
- §10.2.8 Implicita referenskonverteringar
- §10.2.9 Boxningskonverteringar
- §10.2.10 Implicita dynamiska konverteringar
- §10.2.11 Implicita konstanta uttryckskonverteringar
- §10.2.12 Implicita konverteringar med typparametrar
- §10.2.13 Implicita tupplar
- §10.2.14 Användardefinierade implicita konverteringar
- §10.2.15 Anonyma funktionskonverteringar och metodgruppkonverteringar
- §10.2.16 Standardliterala konverteringar
- §10.2.17 Implicita kastkonverteringar
-
§10.3 Explicita konverteringar
- §10.3.1 Allmänt
- §10.3.2 Explicita numeriska konverteringar
- §10.3.3 Explicit uppräkningskonverteringar
- §10.3.4 Explicita nullbara konverteringar
- §10.3.5 Explicita referenskonverteringar
- §10.3.6 Explicita tupplar
- §10.3.7 Avboxningskonverteringar
- §10.3.8 Explicita konverteringar med typparametrar
- §10.3.9 Användardefinierade explicita konverteringar
- §10.4 Standardkonverteringar
- §10.5 Användardefinierade konverteringar
- §10.6 Konverteringar som omfattar nullbara typer
- §10.7 Anonym funktionskonvertering
- §10.8 Metodgruppkonverteringar
- §11 Mönster och mönstermatchning
-
§12 Uttryck
- §12.1 Allmänt
- §12.2 Uttrycksklassificeringar
- §12.3 Statisk och dynamisk bindning
- §12.4 Operatörer
- §12.5 Medlemssökning
-
§12.6 Funktionsmedlemmar
- §12.6.1 Allmänt
- §12.6.2 Argumentlistor
-
§12.6.3 Typinferens
- §12.6.3.1 Allmänt
- §12.6.3.2 Första fasen
- §12.6.3.3 Den andra fasen
- §12.6.3.4 Indatatyper
- §12.6.3.5 Utdatatyper
- §12.6.3.6 Beroende
- §12.6.3.7 Slutsatsdragningar av utdatatyp
- §12.6.3.8 Explicita parametertypinferenser
- §12.6.3.9 Exakta slutsatsdragningar
- §12.6.3.10 Lägre inferenser
- §12.6.3.11 Övre-bundna slutsatsdragningar
- §12.6.3.12 Fixering
- §12.6.3.13 Uppskjuten returtyp
- §12.6.3.14 Typinferens för konvertering av metodgrupper
- §12.6.3.15 Hitta den vanligaste typen av uttryck
- §12.6.4 Överbelastningsupplösning
- §12.6.5 Kompileringstidskontroll av dynamiskt medlemsanrop
- §12.6.6 Funktionsmedlemsanrop
- §12.7 Dekonstruktion
-
§12.8 Primära uttryck
- §12.8.1 Allmänt
- §12.8.2 Literaler
- §12.8.3 Interpolerade stränguttryck
- §12.8.4 Enkla namn
- §12.8.5 Parenteserade uttryck
- §12.8.6 Tupplar
- §12.8.7 Medlemsåtkomst
- §12.8.8 Null Villkorlig medlemsåtkomst
- §12.8.9 Null-förlåtande uttryck
-
§12.8.10 Anropsuttryck
- §12.8.10.1 Allmänt
- §12.8.10.2 Metodanrop
- §12.8.10.3 Tilläggsmetodanrop
- §12.8.10.4 Ombudsanrop
- §12.8.11 Null villkorligt anropsuttryck
-
§12.8.12 Elementåtkomst
- §12.8.12.1 Allmänt
- §12.8.12.2 Matrisåtkomst
- §12.8.12.3 Indexeråtkomst
- §12.8.13 Null Villkorlig elementåtkomst
- §12.8.14 Denna åtkomst
- §12.8.15 Basåtkomst
- §12.8.16 Postfix-inkrements- och deskrementsoperatorer
-
§12.8.17 Den nya operatören
- §12.8.17.1 Allmänt
- §12.8.17.2 Objektskapande uttryck
- §12.8.17.3 Objektinitierare
- §12.8.17.4 Insamlingsinitierare
- §12.8.17.5 Matrisskapande uttryck
- §12.8.17.6 Delegera skapandeuttryck
- §12.8.17.7 Anonyma objektskapandeuttryck
- §12.8.18 Typ av operatör
- §12.8.19 Operatörens storlek
- §12.8.20 De kontrollerade och okontrollerade operatorerna
- §12.8.21 Standardvärdeuttryck
- §12.8.22 Stackallokering
- §12.8.23 Operatörens namn
- §12.8.24 Anonyma metoduttryck
- §12.9 Unary operatorer
- §12.10 Aritmetiska operatorer
- §12.11 Skiftoperatorer
-
§12.12 Relations- och typtestningsoperatorer
- §12.12.1 Allmänt
- §12.12.2 Heltalsjämförelseoperatorer
- §12.12.3 Flyttalsjämförelseoperatorer
- §12.12.4 Decimaljämförelseoperatorer
- §12.12.5 Booleska likhetsoperatorer
- §12.12.6 Uppräkningsjämförelseoperatorer
- §12.12.7 Likhetsoperatorer för referenstyp
- §12.12.8 Strängjämlikhetsoperatorer
- §12.12.9 Delegera likhetsoperatorer
- §12.12.10 Likhetsoperatorer mellan nullbara värdetyper och nullliteralen
- §12.12.11 Tuppelns likhetsoperatorer
-
§12.12.12 Is-operatören
- §12.12.12.1 Is-type-operatorn
- §12.12.12.2 Is-mönsteroperatorn
- §12.12.13 As-operatorn
- §12.13 Logiska operatorer
- §12.14 Villkorsstyrda logiska operatorer
- §12.15 Den null-sammanslutande operatören
- §12.16 Operatorn för utkastsuttryck
- §12.17 Deklarationsuttryck
- §12.18 Villkorsstyrd operator
-
§12.19 Anonyma funktionsuttryck
- §12.19.1 Allmänt
- §12.19.2 Anonyma funktionssignaturer
- §12.19.3 Anonyma funktionsorgan
- §12.19.4 Överbelastningsupplösning
- §12.19.5 Anonyma funktioner och dynamisk bindning
-
§12.19.6 Yttre variabler
- §12.19.6.1 Allmänt
- §12.19.6.2 Insamlade yttre variabler
- §12.19.6.3 Instansiering av lokala variabler
- §12.19.7 Utvärdering av anonyma funktionsuttryck
- §12.19.8 Implementeringsexempel
-
§12.20 Frågeuttryck
- §12.20.1 Allmänt
- §12.20.2 Tvetydigheter i frågeuttryck
-
§12.20.3 Översättning av frågeuttryck
- §12.20.3.1 Allmänt
- §12.20.3.2 Frågeuttryck med fortsättningar
- §12.20.3.3 Explicita intervallvariabeltyper
- §12.20.3.4 Degenerera frågeuttryck
- §12.20.3.5 Från, låt, var, sammanfoga och orderby-satser
- §12.20.3.6 Välj satser
- §12.20.3.7 Gruppklausuler
- §12.20.3.8 Transparenta identifierare
- §12.20.4 Frågeuttrycksmönstret
- §12.21 Tilldelningsoperatörer
- §12.22 Uttryck
- §12.23 Konstanta uttryck
- §12.24 Booleska uttryck
-
§13 -instruktioner
- §13.1 Allmänt
- §13.2 Slutpunkter och nåbarhet
- §13.3 Block
- §13.4 Den tomma instruktionen
- §13.5 Etiketterade instruktioner
- §13.6 Förklaringsutdrag
- §13.7 Uttrycksuttryck
- §13.8 Urvalsutdrag
- §13.9 Iterationsuttryck
- §13.10 Jump-instruktioner
- §13.11 Try-instruktionen
- §13.12 De kontrollerade och okontrollerade satserna
- §13.13 Låssatsen
- §13.14 Instruktionen using
- §13.15 Avkastningsutdraget
- §14 Namnområden
-
§15 klasser
- §15.1 Allmänt
-
§15.2 Klassdeklarationer
- §15.2.1 Allmänt
-
§15.2.2 Klassmodifierare
- §15.2.2.1 Allmänt
- §15.2.2.2 Abstrakta klasser
- §15.2.2.3 Förseglade klasser
-
§15.2.2.4 Statiska klasser
- §15.2.2.4.1 Allmänt
- §15.2.2.4.2 Refererar till statiska klasstyper
- §15.2.3 Typparametrar
- §15.2.4 Klassbasspecifikation
- Parameterbegränsningar av typen §15.2.5
- §15.2.6 Klasstext
- §15.2.7 Partiella deklarationer
-
§15.3 Klassmedlemmar
- §15.3.1 Allmänt
- §15.3.2 Instanstypen
- §15.3.3 Medlemmar av konstruerade typer
- §15.3.4 Arv
- §15.3.5 Den nya modifieraren
- §15.3.6 Åtkomstmodifierare
- §15.3.7 Komponenttyper
- §15.3.8 Statiska och instansmedlemmar
- §15.3.9 Kapslade typer
-
§15.3.10 Reserverade medlemsnamn
- §15.3.10.1 Allmänt
- §15.3.10.2 Medlemsnamn reserverade för fastigheter
- §15.3.10.3 Medlemsnamn reserverade för evenemang
- §15.3.10.4 Medlemsnamn reserverade för indexerare
- §15.3.10.5 Medlemsnamn reserverade för finalatorer
- §15.3.10.6 Metodnamn reserverade för operatörer
- §15.4 Konstanter
- §15.5 Fält
-
§15.6 Metoder
- §15.6.1 Allmänt
-
§15.6.2 Metodparametrar
- §15.6.2.1 Allmänt
- §15.6.2.2 Värdeparametrar
-
§15.6.2.3 Bireferensparametrar
- §15.6.2.3.1 Allmänt
- §15.6.2.3.2 Indataparametrar
- §15.6.2.3.3 Referensparametrar
- §15.6.2.3.4 Utdataparametrar
- §15.6.2.4 Parametermatriser
- §15.6.3 Statiska metoder och instansmetoder
- §15.6.4 Virtuella metoder
- §15.6.5 Åsidosättningsmetoder
- §15.6.6 Förseglade metoder
- §15.6.7 Abstrakta metoder
- §15.6.8 Externa metoder
- §15.6.9 Partiella metoder
- §15.6.10 Tilläggsmetoder
- §15.6.11 Metodtext
- §15.7 Egenskaper
- §15.8 Händelser
- §15,9 Indexerare
- §15.10 Operatörer
- §15.11 Instanskonstruktorer
- §15.12 Statiska konstruktorer
- §15.13 Finalizers
-
§15.14 Iteratorer
- §15.14.1 Allmänt
- §15.14.2 Uppräkningsgränssnitt
- §15.14.3 Uppräkningsbara gränssnitt
- §15.14.4 Avkastningstyp
-
§15.14.5 Uppräkningsobjekt
- §15.14.5.1 Allmänt
- §15.14.5.2 Metoden MoveNext
- §15.14.5.3 Aktuell egendom
- §15.14.5.4 Avyttringsmetoden
-
§15.14.6 Uppräkningsbara objekt
- §15.14.6.1 Allmänt
- §15.14.6.2 Metoden GetEnumerator
- §15.15 Async Functions
-
§16 Structs
- §16.1 Allmänt
- §16.2 Struct-deklarationer
- §16.3 Struct medlemmar
-
§16.4 Skillnader i klass och struct
- §16.4.1 Allmänt
- §16.4.2 Värdesemantik
- §16.4.3 Arv
- §16.4.4 Tilldelning
- §16.4.5 Standardvärden
- §16.4.6 Boxning och avboxning
- §16.4.7 Innebörden av detta
- §16.4.8 Fältinitierare
- §16.4.9 Konstruktorer
- §16.4.10 Statiska konstruktorer
- §16.4.11 Automatiskt implementerade egenskaper
-
§16.4.12 Villkor för säker kontext
- §16.4.12.1 Allmänt
- §16.4.12.2 Parametersäker kontext
- §16.4.12.3 Säker kontext för lokal variabel
- §16.4.12.4 Fältsäker kontext
- §16.4.12.5 Operatörer
- §16.4.12.6 Metod- och egenskapsanrop
- §16.4.12.7 stackalloc
- §16.4.12.8 Konstruktoranrop
- §17 Matriser
-
§18 Gränssnitt
- §18.1 Allmänt
- §18.2 Gränssnittsdeklarationer
- §18.3 Gränssnittstext
- §18.4 Gränssnittsmedlemmar
- §18.5 Namn på kvalificerade gränssnittsmedlemmar
-
§18.6 Gränssnittsimplementeringar
- §18.6.1 Allmänt
- §18.6.2 Explicita implementeringar av gränssnittsmedlemmar
- §18.6.3 Unikt för implementerade gränssnitt
- §18.6.4 Implementering av generiska metoder
- §18.6.5 Gränssnittsmappning
- §18.6.6 Arv av gränssnittsimplementering
- §18.6.7 Omimplementering av gränssnitt
- §18.6.8 Abstrakta klasser och gränssnitt
- §19 Uppräkningar
- §20 Ombud
- §21 Undantag
-
§22 Attribut
- §22.1 Allmänt
-
§22.2 Attributklasser
- §22.2.1 Allmänt
- §22.2.2 Attributanvändning
- §22.2.3 Positionella och namngivna parametrar
- Parametertyper för §22.2.4-attribut
- Attributspecifikation för §22.3
- §22.4 Attributinstanser
-
§22.5 Reserverade attribut
- §22.5.1 Allmänt
- §22.5.2 AttributeUsage-attributet
- §22.5.3 Villkorsattributet
- §22.5.4 Det föråldrade attributet
- §22.5.5 Attributet AsyncMethodBuilder
- §22.5.6 Caller-info-attribut
-
§22.5.7 Kodanalysattribut
- §22.5.7.1 Allmänt
- §22.5.7.2 Attributet AllowNull
- §22.5.7.3 Attributet DisallowNull
- §22.5.7.4 Attributet DoesNotReturn
- §22.5.7.5 Attributet DoesNotReturnIf
- §22.5.7.6 Attributet MaybeNull
- §22.5.7.7 Attributet MaybeNullWhen
- §22.5.7.8 Attributet NotNull
- §22.5.7.9 Attributet NotNullIfNotNull
- §22.5.7.10 Attributet NotNullWhen
- §22.6 Attribut för interoperation
- §23 Osäker kod
- §En grammatik
- §Problem med portabilitet i §B
-
§C Standardbibliotek
- §C.1 Allmänt
- §C.2 Standardbibliotekstyper som definierats i ISO/IEC 23271
- §C.3 Standardbibliotekstyper som inte definierats i ISO/IEC 23271
- Specifikationer för §C.4-format
- §C.5 Förkortningar av bibliotekstyp
-
Kommentarer till §D-dokumentation
- §D.1 Allmänt
- Introduktion till §D.2
-
§D.3 Rekommenderade taggar
- §D.3.1 Allmänt
- §D.3.2<c>
- §D.3.3-kod<>
- Exempel på §D.3.4<>
- §D.3.5-undantag<>
- §D.3.6<inkludera>
- §D.3.7-lista<>
- §D.3.8<punkt>
- §D.3.9<param>
- §D.3.10<paramref>
- §D.3.11-behörighet<>
- §D.3.12<anmärkningar>
- §D.3.13<returnerar>
- §D.3.14<se>
- §D.3.15<se även>
- §D.3.16<sammanfattning>
- §D.3.17<typeparam>
- §D.3.18<typeparamref>
- §D.3.19-värde<>
-
§D.4 Bearbetning av dokumentationsfilen
- §D.4.1 Allmänt
- ID-strängformat för §D.4.2
- Exempel på §D.4.3 ID-sträng
- §D.5 Ett exempel
- §E Litteraturförteckning
Samarbeta med oss på GitHub
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.
ECMA C# draft specification