# Programmation C sharp/Index des mots-clés du langage

Un mot-clé est un nom ayant une signification spéciale, et qui ne peut pas être utilisé comme identificateur de classe, de méthode ou de variable.
Voici la liste complète des mots clés reconnus par le langage C#.

## Références

* ↑ https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/

## abstract

Ce mot-clé permet de déclarer une classe ou une méthode abstraite (voir classe abstraite).

## add

Accesseur d'ajout d'une méthode à un event (voir fonctionnement interne d'un event).

## alias

Alias d'assemblage pour créer de nouvelles racines d'espace de nom (voir Alias d'assemblages).

## as

Opérateur de conversion (voir l'opérateur as).

## ascending

Utiliser l'ordre croissant pour le critère de tri des résultats d'une expression de requête.
Voir Tri dans une expression de requête.

## async

Déclarer une fonction asynchrone.
Voir Fonctions asynchrones et tâches, await.

## await

Attendre la fin et récupérer le résultat d'une fonction asynchrone.
Voir Fonctions asynchrones et tâches, async.

## base

Référence à la classe de base (voir héritage de classes).

## bool

Le type booléen (voir Les types de bases).

## break

Interruption de l'exécution d'une boucle ou d'un test de cas (voir les structures de contrôle).

## by

Critère de regroupement des résultats d'une expression de requête.
Voir Regroupement dans une expression de requête.

## byte

Le type octet (8 bits) non signé (voir Les types de bases).

## case

Déclaration d'un cas à tester (voir tests de plusieurs cas, default, switch).

## catch

Début du bloc exécuté quand une exception est attrapée (voir attraper une exception).

## char

Le type caractère unicode (16 bits) (voir Les types de bases).

## checked

Évaluation de l'expression donnée dans un contexte vérifiant le débordement, et lançant une exception de type System.OverflowException dans ce cas (voir Vérification du débordement et unchecked).

## class

Déclaration d'une nouvelle classe d'objets (voir les classes).

## const

Déclaration d'une constante (voir Les constantes).

## continue

Poursuite immédiate de l'exécution d'une boucle sans exécuter la fin du bloc d'instruction (voir continuer une boucle).

## decimal

Le type nombre décimal à virgule flottante, grande précision (voir Les types de bases).

## default

* Déclaration du cas par défaut (voir tests de plusieurs cas, case, switch),
* Obtenir la valeur par défaut d'un type (voir Types de base : Valeur par défaut, Types génériques : Opérateur default).

## delegate

Déclaration d'une référence à une méthode de signature spécifique (voir Les délégués).

## descending

Utiliser l'ordre décroissant pour le critère de tri des résultats d'une expression de requête.
Voir Tri dans une expression de requête.

## do

Cette instruction permet d'exécuter plusieurs fois une instruction (voir les boucles, while).

## double

Le type nombre à virgule flottante, double précision (voir Les types de bases).

## else

Cette instruction précède l'instruction à exécuter quand la condition est fausse (voir condition).

## enum

Déclaration d'une nouvelle énumération (voir les énumérations).

## event

Déclaration d'une référence de méthode pour la gestion d'évènements (voir Les évènements).

## explicit

Déclarer un opérateur de conversion explicite (voir Explicite/Implicite, implicit).

## extern

Déclarer une fonction définie dans une DLL (voir Appel de plateforme).

## false

Faux. L'une des deux valeurs possibles pour le type booléen (voir Les types de bases, true).

## finally

Début du bloc de code exécuté à la fin d'un bloc try, quelles que soient les exceptions éventuellement lancées (voir attraper une exception).

## fixed

Éviter le déplacement en mémoire d'un tableau ou d'un objet par le ramasse-miettes (voir Éviter le déplacement par le ramasse-miettes).

## float

Le type nombre à virgule flottante, simple précision (voir Les types de bases).

## for

Cette instruction permet d'exécuter plusieurs fois une instruction (voir les boucles).

## foreach

Cette instruction permet d'exécuter une instruction pour chacun des éléments d'un ensemble : tableau, liste, ... (voir les boucles, in).

## from

Définition d'une expression de requête (voir Expression de requête).

## get

Accesseur de lecture d'une propriété ou d'un indexeur (voir propriétés et indexeurs).

## global

Racine par défaut des espaces de nom (voir Conflit de nom).

## goto

Cette instruction poursuit l'exécution au cas indiqué (voir tests de plusieurs cas, switch).

## group

Objet de regroupement des résultats d'une expression de requête.
Voir Regroupement dans une expression de requête.

## if

Cette instruction permet d'exécuter une instruction si une condition est vraie (voir condition).

## implicit

Déclarer un opérateur de conversion implicite (voir Explicite/Implicite, explicit).

## in

Cette instruction permet de spécifier l'ensemble d'éléments (tableau, liste, ...) pour lequel une instruction sera exécutée pour chacun des éléments (voir les boucles, foreach).

## init

Accesseur d'initialisation d'une propriété (voir Accesseurs d'initialisation des propriétés).

## int

Le type entier signé sur 32 bits (voir Les types de bases).

## interface

Déclaration d'une nouvelle interface (voir les interfaces).

## internal

Niveau de protection d'un membre de classe : accès possible au sein du même assemblage seulement (voir Niveaux de protection).

## into

Définir le nom référençant le regroupement des résultats dans une expression de requête.
Voir Regroupement dans une expression de requête.

## is

Test du type d'un objet (voir L'opérateur is).

## join

Jointure entre deux sources de données dans une expression de requête (voir Expression de requête).

## lock

Outil de synchronisation entre threads permettant un accès exclusif à un objet pendant l'exécution du bloc de code associé (voir Synchonisation avec le mot clé lock).

## long

Le type entier signé sur 64 bits (voir Les types de bases).

## nameof

Récupérer le nom de la variable spécifiée entre parenthèses (voir Types de base : Obtenir le nom).

## namespace

Déclaration d'un espace de nom (voir les espaces de noms).

## new

* Création d'une nouvelle instance de classe (voir Instance d'une classe).
* Redéfinition d'une méthode sans polymorphisme (voir Redéfinition sans polymorphisme).

## null

Référence nulle (voir La référence nulle).

## object

Type d'objet à la base de tous les autres types (voir Les objets).

## operator

Mot clé précédant l'opérateur surchargé dans une déclaration de méthode (voir Surcharge des opérateurs).

## orderby

Clause des critères de tri des résultats d'une expression de requête.
Voir Tri dans une expression de requête.

## out

Mode de passage de paramètre à une méthode de type écriture seule. Un tel paramètre doit obligatoirement être modifié par la méthode appelée, et n'a pas besoin d'être initialisé avant l'appel à la méthode (voir Paramètre out, ref).

## override

Redéfinition d'une méthode avec polymorphisme (voir Redéfinition avec polymorphisme, virtual).

## params

Précède la déclaration du dernier paramètre d'une méthode (de type tableau) pour que celui-ci recueille tous les paramètres supplémentaires sous la forme d'un tableau (voir Nombre variable de paramètres).

## partial

Ce mot clé indique que le fichier source ne contient qu'une partie de la classe, la structure ou l'interface déclarée. Il peut également servir à déclarer une méthode partielle dans un type partiel.
Voir type partiel.

## private

Niveau de protection d'un membre de classe le plus restrictif : accès possible au sein de la classe seulement (voir Niveaux de protection).

## protected

Niveau de protection d'un membre de classe : accès possible au sein de la classe ou de ses sous-classes, quel que soit le niveau d'héritage (voir Niveaux de protection et Héritage).

## public

Niveau de protection d'un membre de classe le moins restrictif : accès possible depuis n'importe quelle classe (voir Niveaux de protection).

## readonly

Déclaration d'une variable en lecture seule, c'est-à-dire dont l'affectation ne peut s'effectuer qu'une seule fois (voir Variable en lecture seule).

## ref

Mode de passage de paramètre à une méthode de type lecture et écriture (référence). Un tel paramètre peut être modifié par la méthode appelée, et doit être initialisé avant l'appel à la méthode (voir Paramètre out, out).

## remove

Accesseur de retrait de méthode d'un event (voir fonctionnement interne d'un event).

## return

Cette instruction spécifie ce que la fonction retourne (voir les fonctions).

## sbyte

Le type octet (8 bits) signé (voir Les types de bases).

## sealed

Une classe déclarée "Sealed" ne peut plus être héritée (voir Classe sans héritière).

## select

Définition des données retournées par une expression de requête (voir Sélection des résultats d'une expression de requête).

## set

Accesseur de modification d'une propriété ou d'un indexeur (voir propriétés et indexeurs).

## short

Le type entier signé sur 16 bits (voir Les types de bases).

## sizeof

Obtenir la taille du type ou de la variable spécifiée entre parenthèses. Le code utilisant cet opérateur doit être déclaré comme non vérifié (voir Taille d'une variable ou d'un type, unsafe).

## stackalloc

Allocation sur la pile au lieu du tas. Ce mot-clé doit être utilisé dans un contexte de code non vérifié (voir Allocation sur la pile, unsafe).

## static

Déclaration d'un membre statique d'une classe, ou d'une classe statique ne contenant que des membres statiques (voir Membres statiques de classe et membres d'instance).

## string

Le type chaîne de caractères (voir Les types de bases).

## struct

Déclaration d'une nouvelle structure de données (voir les structures).

## switch

Cette instruction permet de tester la valeur d'une expression avec plusieurs cas (voir tests de plusieurs cas, case, default).

## this

Référence à l'objet lui-même (voir héritage de classes).

## throw

Cette instruction lance un exception (voir lancer une exception).

## true

Vrai. L'une des deux valeurs possibles pour le type booléen (voir Les types de bases, false).

## try

Début du bloc de code pour lequel les exceptions sont attrapées (voir attraper une exception).

## typeof

Récupérer le type (System.Type) de la classe dont le nom est spécifié entre parenthèses (voir Types de base : Obtenir le type).

## uint

Le type entier non signé sur 32 bits (voir Les types de bases).

## ulong

Le type entier non signé sur 64 bits (voir Les types de bases).

## unchecked

Évaluation de l'expression donnée dans un contexte ne vérifiant pas le débordement, et copiant le résultat même si celui-ci ne loge pas dans le type requis (voir Non vérification du débordement, checked).

## unsafe

Déclarer du code non vérifié (voir Code non vérifié).

## ushort

Le type entier non signé sur 16 bits (voir Les types de bases).

## using

* Déclaration des espaces de nom utilisés (voir Utiliser les membres d'un espace de nom),
* Création d'un alias d'espace de nom (voir Alias d'espace de nom), ou de classe générique (voir Alias de type générique),
* Utilisation d'un objet IDisposable (voir Libérer des ressources).

## value

Nom réservé au paramètre des accesseurs add, remove et set.

## var

Typage implicite d'une variable locale en fonction de la valeur qui lui est affectée (Voir Type variable).

## virtual

Déclaration d'une méthode dont la redéfinition est avec polymorphisme (voir Redéfinition avec polymorphisme, override).

## void

Le type vide pour indiquer qu'une fonction ne retourne rien (voir Les fonctions).

## volatile

Déclaration d'un attribut de classe modifiable par plusieurs threads en même temps. Pour des raisons de performance, le système d'exécution peut décider de changer l'ordre des lectures et écritures en mémoire. Les champs déclarés comme volatiles ne sont pas soumis à ce changement, ce qui permet d'assurer que l'écriture par un thread et la lecture par un autre se fasse dans le bon ordre.
Voir Attribut volatile.

## when

Ajoute une condition pour un cas de test switch ou pour attraper une exception.
Voir le test de cas conditionnel et Attraper conditionnellement une exception.

## where

Contraintes sur un type générique (voir Contraintes sur les types génériques) ou filtre dans une expression de requête (voir Filtre d'une expression de requête).

## while

Cette instruction permet d'exécuter plusieurs fois une instruction tant qu'une condition est vraie (voir les boucles, do).

## yield

Cette instruction permet de créer une énumération (voir l'interface IEnumerable et le mot clé yield).