CompilationSyntaxeIdentificateurs et mots-clésLittéraux, ponctuateurs et opérateursCommentairesLes bases de la typologieExemples de types prédéfinisExemples de types personnalisésTypes et conversionsTypes de valeurs et types de référencesTaxonomie des types prédéfinisTypes numériquesLettres numériquesConversions numériquesOpérateurs arithmétiquesOpérateurs d'incrémentation et de décrémentationOpérations intégrales spécialiséesTypes d'intégrales 8 et 16 bitsValeurs spéciales flottantes et doublesdouble Versus décimalErreurs d'arrondi des nombres réelsType et opérateurs booléensOpérateurs d'égalité et de comparaisonOpérateurs conditionnelsChaînes et caractèresType de chaîneChaînes UTF-8TableauxInitialisation de l'élément par défautIndices et fourchettesTableaux multidimensionnelsExpressions simplifiées d'initialisation des tableauxVariables et paramètresLa pile et le tasAffectation définitiveValeurs par défautParamètresvar - Variables locales implicitement typéesNouvelles expressions de type cibleExpressions et opérateursExpressions d'affectationPriorité et associativité des opérateursTable de l'opérateurOpérateurs nulsOpérateur à coalescence nulleOpérateur d'affectation à coalescence nulleOpérateur sans conditionDéclarationsDéclarationsDéclarations d'expressionDéclarations de sélectionDéclarations d'itérationSauter des énoncésEspaces de nomsEspaces de noms à l'échelle du fichierLa directive d'utilisationLa directive d'utilisation globaleen utilisant la statiqueRègles au sein d'un espace de nomsAlias de types et d'espaces de nomsLes classesChampsConstantesMéthodesConstructeurs d'instanceDéconstructeursInitialisateurs d'objetsCette référencePropriétésIndexeursConstructeurs primaires (C# 12)Constructeurs statiquesClasses statiquesFinaliseursTypes et méthodes partielsLe nom de l'opérateurHéritagePolymorphismeCasting et conversions de référencesMembres des fonctions virtuellesClasses abstraites et membres abstraitsCacher les membres héritésFonctions et classes de scellementLe mot-clé de baseConstructeurs et héritageSurcharge et résolutionL'objet TypeBoxe et UnboxingVérification de type statique et en cours d'exécutionLa méthode GetType et l'opérateur typeofListe des membres de l'objetÉgaux, Égaux de référence et GetHashCodeLa méthode ToStringStructuresSémantique de construction des structuresreadonly Structs et FunctionsModificateurs d'accèsAssemblées d'amisPlafonnement de l'accessibilitéInterfacesExtension d'une interfaceMise en œuvre explicite de l'interfaceImplémentation virtuelle des membres de l'interfaceRéimplémenter une interface dans une sous-classeMembres de l'interface par défautMembres de l'interface statiqueEnumsConversions d'énumérationsDrapeaux EnumsOpérateurs EnumTypes imbriquésGénériquesTypes génériquesMéthodes génériquesDéclaration des paramètres de typetypeof et types génériques non liésLa valeur générique par défautContraintes génériquesSous-classement des types génériquesDéclarations génériques autoréférencéesDonnées statiquesCovarianceContravarianceDéléguésÉcrire des méthodes de plug-in avec des déléguésCibles des méthodes statiques et d'instanceDélégués de multidiffusionTypes de délégués génériquesLes délégués Func et ActionCompatibilité des déléguésÉvénementsModèle d'événement standardAccesseurs d'événementsExpressions LambdaParamètres Lambda par défaut (C# 12)Capturer les variables externesLes expressions Lambda par rapport aux méthodes localesMéthodes anonymesDéclarations try et exceptionsLa clause de rattrapageLe dernier blocLancer des exceptionsPropriétés clés de System.ExceptionEnumération et itérateursEnumérationInitialisateurs de collection et expressions de collectionItérateursSémantique des itérateursComposer des séquencesTypes de valeurs annulablesNullable<T> StructConversions annulablesEncadrer/décadrer les valeurs nullesOpérateur de levagebool ? avec les opérateurs & et |Types et opérateurs nulsTypes de référence annulablesMéthodes d'extensionChaînage de méthodes d'extensionAmbiguïté et résolutionTypes anonymesTuplesNommer les éléments d'un tupleDéconstruction des tuplesEnregistrementsDéfinir un enregistrementMutation non destructiveConstructeurs primairesComparaison des records et de l'égalitéModèlesvar PatternMotif constantModèles relationnelsCombinateurs de motifsModèles de tuple et de positionModèles de propriétéModèles de listesLINQPrincipes de base de LINQExécution différéeOpérateurs de requête standardEnchaîner les opérateurs de requêteExpressions de requêteLe mot-clé letContinuation des requêtesGénérateurs multiplesRejoindreCommanderRegroupementOfType et CastLiaison dynamiqueLiaison statique et liaison dynamiqueReliure sur mesureReliure en langueRuntimeBinderExceptionReprésentation de la dynamique au moment de l'exécutionConversions dynamiquesvar Versus dynamicExpressions dynamiquesRésolution dynamique de la surcharge des membresFonctions non appelablesSurcharge de l'opérateurFonctions de l'opérateurSurcharge des opérateurs d'égalité et de comparaisonConversions implicites et explicites personnaliséesAttributsClasses d'attributsParamètres d'attributs nommés et positionnelsCibles d'attributsSpécifier plusieurs attributsRédaction d'attributs personnalisésRécupérer les attributs au moment de l'exécutionAttributs des informations sur l'appelantExpression de l'appelantFonctions asynchronesLes mots-clés await et asyncSaisir l'état localÉcrire des fonctions asynchronesParallélismeExpressions Lambda asynchronesFlux asynchronesPolymorphisme statiqueOpérateurs polymorphesMathématiques génériquesCode non sécurisé et pointeursLes bases du pointeurCode dangereuxLa déclaration fixeL'opérateur Pointer-to-MemberLe mot-clé stackallocTampons de taille fixevoid*Pointeurs de fonctionDirectives du préprocesseurAvertissement PragmaDocumentation XMLTags de la documentation XML standard