Table des matières détaillée
- Avant-propos
- Introduction
- §1 Étendue
- §2 Références normatives
- §3 Termes et définitions
- Description générale du §4
- §5 Conformité
- §6 Structure lexicale
- §6.1 Programmes
- §6.2 Grammaires
- §6.3 Analyse lexicale
- §6.4 Jetons
- Directives de prétraitement de §6.5
- §6.5.1 Général
- §6.5.2 Symboles de compilation conditionnelle
- §6.5.3 Expressions de prétraitement
- Directives de définition §6.5.4
- Directives de compilation conditionnelle de §6.5.5
- Directives de diagnostic §6.5.6
- Directives de région §6.5.7
- Directives de ligne §6.5.8
- Directive Nullable §6.5.9
- Directives pragma §6.5.10
- §7 Concepts de base
- Démarrage de l’application §7.1
- §7.2 Arrêt de l’application
- §7.3 Déclarations
- §7.4 Membres
- §7.5 Accès aux membres
- §7.5.1 Général
- §7.5.2 Accessibilité déclarée
- Domaines d’accessibilité §7.5.3
- §7.5.4 Accès protégé
- Contraintes d’accessibilité de §7.5.5
- §7.6 Signatures et surcharge
- §7.7 Étendues
- §7.8 Noms d’espaces de noms et de types
- §7.9 Gestion automatique de la mémoire
- §7.10 Ordre d’exécution
- §8 Types
- §8.1 Général
- Types de référence §8.2
- §8.2.1 Général
- §8.2.2 Types de classes
- §8.2.3 Le type d'objet
- §8.2.4 Le type dynamique
- §8.2.5 Le type de chaîne
- Types d’interface §8.2.6
- §8.2.7 Types de tableaux
- §8.2.8 Les types délégués
- §8.3 Types valeur
- §8.3.1 Général
- §8.3.2 Type System.ValueType
- §8.3.3 Constructeurs par défaut
- §8.3.4 Types de struct
- §8.3.5 Types simples
- §8.3.6 Types intégraux
- §8.3.7 Types à virgule flottante
- §8.3.8 Type décimal
- §8.3.9 Type Bool
- §8.3.10 Types d’énumération
- §8.3.11 Types tuple
- §8.3.12 Types de valeurs Nullables
- §8.3.13 Boxing et unboxing
- §8.4 Types construits
- Paramètres de type §8.5
- Types d’arborescences d’expressions §8.6
- §8.7 Le type dynamique
- §8.8 Types non managés
- §8.9 Types de référence et nullabilité
- §8.9.1 Général
- §8.9.2 Types de référence non nullables
- §8.9.3 Types de référence Nullable
- Contexte Nullable §8.9.4
- §8.9.4.1 Général
- §8.9.4.2 Désactivation nullable
- §8.9.4.3 Annotations nullables
- Avertissements nullables §8.9.4.4
- §8.9.4.5 Nullable enable
- §8.9.5 Capacités null et états Null
- §9 Variables
- §9.1 Général
- Catégories de variables §9.2
- §9.2.1 Général
- §9.2.2 Variables statiques
- §9.2.3 Variables d’instance
- Éléments de tableau §9.2.4
- Paramètres de valeur §9.2.5
- Paramètres de référence §9.2.6
- Paramètres de sortie §9.2.7
- Paramètres d’entrée §9.2.8
- §9.2.9 Variables locales
- §9.3 Valeurs par défaut
- §9.4 Affectation définitive
- §9.4.1 Général
- §9.4.2 Variables initialement affectées
- §9.4.3 Variables initialement non attribuées
- §9.4.4 Règles précises pour déterminer l’affectation définitive
- §9.4.4.1 Général
- §9.4.4.2 Règles générales pour les instructions
- §9.4.4.3 Instructions block, checked et unchecked
- Instructions d’expression §9.4.4.4
- Instructions de déclaration §9.4.4.5
- §9.4.4.6 Instructions If
- §9.4.4.7 Instructions switch
- §9.4.4.8 Instructions While
- §9.4.4.9 Instructions Do
- §9.4.4.10 Pour les instructions
- §9.4.4.11 Arrêt, continuer et instructions goto
- §9.4.4.12 Instructions Throw
- §9.4.4.13 Instructions return
- §9.4.4.14 Instructions Try-catch
- §9.4.4.15 Instructions Try-finally
- §9.4.4.16 Instructions Try-catch-finally
- §9.4.4.17 Instructions Foreach
- §9.4.4.18 Instructions Using
- §9.4.4.19 Instructions lock
- §9.4.4.20 Instructions de rendement
- §9.4.4.21 Règles générales pour les expressions constantes
- §9.4.4.22 Règles générales pour les expressions simples
- §9.4.4.23 Règles générales pour les expressions avec des expressions incorporées
- §9.4.4.24 Expressions d’appel et expressions de création d’objet
- §9.4.4.25 Expressions d’affectation simple
- §9.4.4.26 expressions &&&
- §9.4.4.27 || expressions
- §9.4.4.28 ! expressions
- §9.4.4.29 ?? expressions
- §9.4.4.30 ?: expressions
- §9.4.4.31 Fonctions anonymes
- §9.4.4.32 Expressions Throw
- §9.4.4.33 Règles pour les variables dans les fonctions locales
- §9.4.4.34 expressions de modèle
- Références de variables §9.5
- §9.6 Atomicité des références de variables
- §9.7 Variables de référence et retours
- §9.7.1 Général
- §9.7.2 Contextes fiables ref
- §9.7.2.1 Général
- §9.7.2.2 Contexte de sécurité de la variable locale ref
- §9.7.2.3 Contexte de sécurité ref du paramètre
- §9.7.2.4 Contexte de sécurité ref de champ
- §9.7.2.5 Opérateurs
- §9.7.2.6 Appel de fonction
- §9.7.2.7 Valeurs
- §9.7.2.8 Appels de constructeur
- §9.7.2.9 Limitations sur les variables de référence
- §10 Conversions
- §10.1 Général
- §10.2 Conversions implicites
- §10.2.1 Général
- §10.2.2 Conversion d’identité
- §10.2.3 Conversions numériques implicites
- §10.2.4 Conversions d’énumération implicites
- §10.2.5 Conversions de chaînes interpolées implicites
- §10.2.6 Conversions nullables implicites
- §10.2.7 Conversions littérales Null
- Conversions de référence implicites §10.2.8
- Conversions de boxe §10.2.9
- §10.2.10 Conversions dynamiques implicites
- §10.2.11 Conversions d’expressions constantes implicites
- §10.2.12 Conversions implicites impliquant des paramètres de type
- §10.2.13 Conversions de tuple implicites
- §10.2.14 Conversions implicites définies par l’utilisateur
- §10.2.15 Conversions de fonctions anonymes et conversions de groupes de méthodes
- §10.2.16 Conversions littérales par défaut
- §10.2.17 Conversions de levée implicites
- §10.3 Conversions explicites
- §10.3.1 Général
- §10.3.2 Conversions numériques explicites
- §10.3.3 Conversions d’énumération explicites
- §10.3.4 Conversions nullables explicites
- §10.3.5 Conversions de référence explicites
- §10.3.6 Conversions de tuple explicites
- §10.3.7 Conversions d’annulation de boîte de réception
- §10.3.8 Conversions explicites impliquant des paramètres de type
- §10.3.9 Conversions explicites définies par l’utilisateur
- §10.4 Conversions standard
- §10.5 Conversions définies par l’utilisateur
- §10.6 Conversions impliquant des types nullables
- §10.6.1 Conversions nullables
- Conversions lifted §10.6.2
- §10.7 Conversions de fonctions anonymes
- §10.8 Conversions de groupes de méthodes
- §11 Modèles et correspondances de modèles
- §12 Expressions
- §12.1 Général
- Classifications d’expressions §12.2
- §12.3 Liaison statique et dynamique
- §12.4 Opérateurs
- §12.4.1 Général
- §12.4.2 Priorité des opérateurs et associativité
- §12.4.3 Surcharge des opérateurs
- §12.4.4 Résolution de surcharge d’opérateur unaire
- §12.4.5 Résolution de surcharge d’opérateur binaire
- §12.4.6 Opérateurs définis par l’utilisateur candidats
- §12.4.7 Promotions numériques
- §12.4.8 Opérateurs lifted
- §12.5 Recherche de membre
- §12.6 Membres de la fonction
- §12.6.1 Général
- §12.6.2 Listes d’arguments
- §12.6.3 Inférence de type
- §12.6.3.1 Général
- §12.6.3.2 La première phase
- §12.6.3.3 La deuxième phase
- §12.6.3.4 Types d’entrée
- §12.6.3.5 Types de sortie
- §12.6.3.6 Dépendance
- §12.6.3.7 Inférences de type de sortie
- §12.6.3.8 Inférences de type de paramètre explicites
- §12.6.3.9 Inférences exactes
- §12.6.3.10 Inférences à limite inférieure
- §12.6.3.11 Inférences liées en haut
- §12.6.3.12 Correction
- §12.6.3.13 Type de retour déduit
- §12.6.3.14 Inférence de type pour la conversion de groupes de méthodes
- §12.6.3.15 Recherche du meilleur type commun d’un ensemble d’expressions
- §12.6.4 Résolution de surcharge
- §12.6.4.1 Général
- §12.6.4.2 Membre de fonction applicable
- §12.6.4.3 Meilleur membre de fonction
- §12.6.4.4 Meilleur mode de passage de paramètre
- §12.6.4.5 Meilleure conversion à partir d’une expression
- §12.6.4.6 Expression exactement correspondante
- §12.6.4.7 Meilleure cible de conversion
- §12.6.4.8 Surcharge dans les classes génériques
- §12.6.5 Vérification au moment de la compilation de l’appel de membre dynamique
- §12.6.6 Appel du membre de fonction
- §12.7 Déconstruction
- §12.8 Expressions principales
- §12.8.1 Général
- §12.8.2 Littéraux
- §12.8.3 Expressions de chaîne interpolées
- §12.8.4 Noms simples
- §12.8.5 Expressions entre parenthèses
- §12.8.6 Expressions tuple
- §12.8.7 Accès aux membres
- §12.8.8 Accès conditionnel Null
- §12.8.9 Expressions Null-forgiving
- §12.8.10 Expressions d’appel
- §12.8.10.1 Général
- §12.8.10.2 Appel de méthode
- §12.8.10.3 Appels de méthode d’extension
- §12.8.10.4 Appels délégués
- §12.8.11 Expression d’appel conditionnel Null
- §12.8.12 Accès aux éléments
- §12.8.12.1 Général
- §12.8.12.2 Accès au tableau
- §12.8.12.3 Accès indexeur
- §12.8.13 Accès conditionnel Null
- §12.8.14 Cet accès
- §12.8.15 Accès de base
- §12.8.16 Opérateurs d’incrémentation et de décrémentation postfix
- §12.8.17 Le nouvel opérateur
- §12.8.17.1 Général
- §12.8.17.2 Expressions de création d’objets
- §12.8.17.3 Initialiseurs d’objet
- §12.8.17.4 Initialiseurs de collection
- §12.8.17.5 Expressions de création de tableau
- §12.8.17.6 Expressions de création de délégués
- §12.8.17.7 Expressions de création d’objets anonymes
- §12.8.18 L’opérateur typeof
- §12.8.19 Opérateur sizeof
- §12.8.20 Opérateurs vérifiés et non vérifiés
- §12.8.21 Expressions de valeur par défaut
- §12.8.22 Allocation de pile
- §12.8.23 L’opérateur nameof
- §12.8.24 Expressions de méthode anonyme
- §12.9 Opérateurs unaires
- §12.10 Opérateurs arithmétiques
- §12.11 Opérateurs shift
- §12.12 Opérateurs relationnels et de test de type
- §12.12.1 Général
- §12.12.2 Opérateurs de comparaison d’entiers
- §12.12.3 Opérateurs de comparaison à virgule flottante
- §12.12.4 Opérateurs de comparaison décimal
- §12.12.5 Opérateurs d’égalité booléenne
- §12.12.6 Opérateurs de comparaison d’énumération
- §12.12.7 Opérateurs d’égalité de type de référence
- §12.12.8 Opérateurs d’égalité de chaîne
- §12.12.9 Opérateurs d’égalité délégué
- §12.12.10 Opérateurs d’égalité entre les types de valeurs nullables et le littéral Null
- §12.12.11 Opérateurs d’égalité tuple
- §12.12.12 L’opérateur est
- §12.12.12.1 L’opérateur de type is-type
- §12.12.12.2 L’opérateur is-pattern
- §12.12.13 L’opérateur en tant qu’opérateur
- §12.13 Opérateurs logiques
- §12.14 Opérateurs logiques conditionnels
- §12.15 Opérateur de fusion Null
- §12.16 Opérateur d’expression throw
- Expressions de déclaration §12.17
- §12.18 Opérateur conditionnel
- §12.19 Expressions de fonction anonyme
- §12.19.1 Général
- §12.19.2 Signatures de fonction anonyme
- §12.19.3 Corps de fonction anonyme
- §12.19.4 Résolution de surcharge
- §12.19.5 Fonctions anonymes et liaison dynamique
- §12.19.6 Variables externes
- §12.19.6.1 Général
- §12.19.6.2 Variables externes capturées
- §12.19.6.3 Instanciation des variables locales
- §12.19.7 Évaluation des expressions de fonction anonyme
- Exemple d’implémentation de §12.19.8
- §12.20 Expressions de requête
- §12.20.1 Général
- §12.20.2 Ambiguïtés dans les expressions de requête
- §12.20.3 Traduction d’expressions de requête
- §12.20.3.1 Général
- §12.20.3.2 Expressions de requête avec continuations
- §12.20.3.3 Types de variables de plage explicites
- §12.20.3.4 Dégénérer les expressions de requête
- §12.20.3.5 À partir de, let, where, join and orderby clauses
- §12.20.3.6 Clauses Select
- §12.20.3.7 Clauses de groupe
- §12.20.3.8 Identificateurs transparents
- §12.20.4 Le modèle d’expression de requête
- Opérateurs d’affectation §12.21
- §12.22 Expression
- §12.23 Expressions constantes
- §12.24 Expressions booléennes
- §13 Instructions
- §13.1 Général
- §13.2 Points de terminaison et accessibilité
- §13.3 Blocs
- §13.4 L’instruction vide
- §13.5 Instructions étiquetées
- Instructions de déclaration §13.6
- Instructions d’expression §13.7
- Instructions de sélection §13.8
- Instructions d’itération §13.9
- §13.10 Instructions jump
- §13.11 L’instruction try
- §13.12 Instructions vérifiées et non cochées
- §13.13 L’instruction de verrouillage
- §13.14 Instruction using
- §13.15 L’instruction de rendement
- §14 Espaces de noms
- §15 Classes
- §15.1 Général
- §15.2 Déclarations de classe
- §15.2.1 Général
- §15.2.2 Modificateurs de classe
- §15.2.2.1 Général
- §15.2.2.2 Classes abstraites
- §15.2.2.3 Classes sealed
- §15.2.2.4 Classes statiques
- §15.2.2.4.1 Général
- §15.2.2.4.2 Référencement des types de classes statiques
- §15.2.3 Paramètres de type
- §15.2.4 Spécification de base de classe
- Contraintes de paramètre de type §15.2.5
- §15.2.6 Corps de classe
- §15.2.7 Déclarations partielles
- §15.3 Membres de la classe
- §15.3.1 Général
- §15.3.2 Type d’instance
- §15.3.3 Membres de types construits
- §15.3.4 Héritage
- §15.3.5 Le nouveau modificateur
- §15.3.6 Modificateurs d’accès
- §15.3.7 Types constituants
- §15.3.8 Membres statiques et d’instance
- §15.3.9 Types imbriqués
- §15.3.10 Noms de membres réservés
- §15.3.10.1 Général
- §15.3.10.2 Noms de membres réservés aux propriétés
- §15.3.10.3 Noms de membres réservés aux événements
- §15.3.10.4 Noms de membres réservés aux indexeurs
- §15.3.10.5 Noms de membres réservés aux finaliseurs
- §15.3.10.6 Noms de méthode réservés aux opérateurs
- §15.4 Constantes
- §15.5 Champs
- §15.6 Méthodes
- §15.6.1 Général
- Paramètres de méthode §15.6.2
- §15.6.2.1 Général
- Paramètres de valeur §15.6.2.2
- §15.6.2.3 Paramètres de référence
- §15.6.2.3.1 Général
- §15.6.2.3.2 Paramètres d’entrée
- §15.6.2.3.3 Paramètres de référence
- §15.6.2.3.4 Paramètres de sortie
- §15.6.2.4 Tableaux de paramètres
- §15.6.3 Méthodes statiques et d’instance
- §15.6.4 Méthodes virtuelles
- §15.6.5 Méthodes de remplacement
- Méthodes scellées §15.6.6
- §15.6.7 Méthodes abstraites
- §15.6.8 Méthodes externes
- §15.6.9 Méthodes partielles
- Méthodes d’extension §15.6.10
- §15.6.11 Corps de la méthode
- §15.7 Propriétés
- §15.8 Événements
- §15.9 Indexeurs
- §15.10 Opérateurs
- §15.11 Constructeurs d’instance
- §15.12 Constructeurs statiques
- §15.13 Finaliseurs
- §15.14 Itérateurs
- §15.14.1 Général
- Interfaces d’énumérateur §15.14.2
- §15.14.3 Interfaces énumérables
- §15.14.4 Type de rendement
- §15.14.5 Objets énumérateurs
- §15.14.5.1 Général
- §15.14.5.2 La méthode MoveNext
- §15.14.5.3 La propriété actuelle
- §15.14.5.4 La méthode Dispose
- §15.14.6 Objets énumérables
- §15.14.6.1 Général
- §15.14.6.2 La méthode GetEnumerator
- §15.15 Fonctions asynchrones
- §16 Structs
- §16.1 Général
- §16.2 Déclarations de struct
- §16.2.1 Général
- §16.2.2 Modificateurs de struct
- §16.2.3 Modificateur Ref
- §16.2.4 Modificateur partiel
- Interfaces de struct §16.2.5
- Corps du struct §16.2.6
- §16.3 Membres du struct
- §16.4 Différences de classe et de struct
- §16.4.1 Général
- Sémantique des valeurs §16.4.2
- §16.4.3 Héritage
- §16.4.4 Affectation
- §16.4.5 Valeurs par défaut
- §16.4.6 Boxing et unboxing
- §16.4.7 Signification de ce
- §16.4.8 Initialiseurs de champ
- §16.4.9 Constructeurs
- §16.4.10 Constructeurs statiques
- §16.4.11 Propriétés implémentées automatiquement
- Contrainte de contexte sécurisé §16.4.12
- §16.4.12.1 Général
- §16.4.12.2 Contexte sécurisé du paramètre
- §16.4.12.3 Contexte sécurisé de variable locale
- §16.4.12.4 Contexte sécurisé du champ
- §16.4.12.5 Opérateurs
- §16.4.12.6 Méthode et appel de propriété
- §16.4.12.7 stackalloc
- §16.4.12.8 Appels de constructeur
- §17 Tableaux
- §18 Interfaces
- §18.1 Général
- §18.2 Déclarations d’interface
- §18.2.1 Général
- Modificateurs d’interface §18.2.2
- §18.2.3 Listes de paramètres de type variant
- Interfaces de base §18.2.4
- Corps de l’interface §18.3
- §18.4 Membres de l’interface
- §18.4.1 Général
- Méthodes d’interface §18.4.2
- Propriétés de l’interface §18.4.3
- Événements de l’interface §18.4.4
- §18.4.5 Indexeurs d’interface
- §18.4.6 Accès aux membres de l’interface
- §18.5 Noms de membres d’interface qualifiés
- Implémentations de l’interface §18.6
- §18.6.1 Général
- §18.6.2 Implémentations de membres d’interface explicites
- §18.6.3 Unicité des interfaces implémentées
- §18.6.4 Implémentation de méthodes génériques
- Mappage d’interface §18.6.5
- Héritage de l’implémentation de l’interface §18.6.6
- §18.6.7 Implémentation de l’interface
- §18.6.8 Classes et interfaces abstraites
- §19 Énumérations
- §20 Délégués
- §21 Exceptions
- §22 Attributs
- §22.1 Général
- Classes d’attributs §22.2
- §22.2.1 Général
- §22.2.2 Utilisation des attributs
- §22.2.3 Paramètres positionnels et nommés
- Types de paramètres d’attribut §22.2.4
- Spécification de l’attribut §22.3
- §22.4 Instances d’attribut
- §22.5 Attributs réservés
- §22.5.1 Général
- §22.5.2 Attributs
- §22.5.3 L’attribut conditionnel
- §22.5.4 Attribut obsolète
- §22.5.5 L’attribut AsyncMethodBuilder
- §22.5.6 Attributs d’informations de l’appelant
- §22.5.7 Attributs d’analyse du code
- §22.5.7.1 Général
- §22.5.7.2 Attribut AllowNull
- §22.5.7.3 L’attribut DisallowNull
- §22.5.7.4 L’attribut DoesNotReturn
- §22.5.7.5 L’attribut DoesNotReturnIf
- §22.5.7.6 L’attribut MaybeNull
- §22.5.7.7 L’attribut MaybeNullWhen
- §22.5.7.8 Attribut NotNull
- §22.5.7.9 Attribut NotNullIfNotNull
- §22.5.7.10 Attribut NotNullWhen
- §22.6 Attributs pour l’interopérabilité
- §23 Code non sécurisé
- §23.1 Général
- §23.2 Contextes non sécurisés
- §23.3 Types de pointeurs
- §23.4 Variables fixes et déplaçables
- Conversions de pointeur §23.5
- §23.6 Pointeurs dans les expressions
- §23.6.1 Général
- §23.6.2 Indirection du pointeur
- §23.6.3 Accès aux membres du pointeur
- Accès à l’élément pointeur §23.6.4
- §23.6.5 L’opérateur d’adresse
- §23.6.6 Incrément et décrémentation du pointeur
- §23.6.7 Pointeur arithmétique
- Comparaison des pointeurs §23.6.8
- §23.6.9 Opérateur sizeof
- §23.7 L’instruction fixe
- §23.8 Mémoires tampons de taille fixe
- §23.9 Allocation de pile
- §A Grammar
- §B Problèmes de portabilité
- Bibliothèque §C Standard
- §C.1 Général
- §C.2 Types de bibliothèque standard définis dans ISO/IEC 23271
- §C.3 Types de bibliothèque standard non définis dans ISO/IEC 23271
- Spécifications de format §C.4
- §C.5 Abréviations de type de bibliothèque
- Commentaires de la documentation §D
- §D.1 Général
- Introduction au §D.2
- §D.3 Balises recommandées
- §D.3.1 Général
- §D.3.2<c>
- Code §D.3.3<>
- Exemple §D.3.4<>
- Exception §D.3.5<>
- §D.3.6<include>
- Liste §D.3.7<>
- §D.3.8<para>
- §D.3.9<param>
- §D.3.10<paramref>
- Autorisation §D.3.11<>
- §D.3.12<remarques>
- §D.3.13<retourne>
- §D.3.14<voir>
- §D.3.15<seealso>
- §D.3.16<Résumé>
- §D.3.17<typeparam>
- §D.3.18<typeparamref>
- Valeur §D.3.19<>
- §D.4 Traitement du fichier de documentation
- §D.4.1 Général
- §D.4.2 Format de chaîne d’ID
- Exemples de chaîne d’ID §D.4.3
- §D.5 Exemple
- §E Bibliographie
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
ECMA C# draft specification