# Programmation C sharp/Glossaire

Ce chapitre donne une brève définition des termes employés en programmation orientée objet et leur application en C# en donnant des liens vers les chapitres concernés de ce livre.

## A
### Abstrait(e)

    Une méthode abstraite possède une déclaration (signature) mais pas d'implémentation. La classe qui la déclare est donc obligatoirement abstraite également : aucune instance de cette classe ne peut être créée. La méthode devra être redéfinie dans une sous-classe qui fournira l'implémentation de la méthode.
    Une classe abstraite peut ne pas avoir de méthode abstraite. Aucune instance de cette classe ne peut être créée : il faut instancier une de ses sous-classes concrète.
   * Voir le chapitre Classe abstraite

### Attribut

    Un attribut est l'équivalent d'une variable déclarée dans une classe. Il possède donc un nom et un type. Il a également un niveau d'accès (public, protégé, privé) et peut également avoir une valeur par défaut.
   * Voir Membres d'une classe du chapitre Les classes.

## C
### Classe

    Une classe est un type de données permettant d'encapsuler des informations sur une entité et d'y associer des méthodes de traitement de ces informations.
   * Voir le chapitre Les classes.

### Commentaire

    Un commentaire sert à documenter le fonctionnement global et détaillé d'une classe.
   * Voir le chapitre Les commentaires.
   * Voir le chapitre Documentation XML des classes.

### Concret, Concrète

    Opposé à abstrait(e).

### Constante

    Une constante est déclarée avec une valeur qui ne change pas.
   * Voir Les constantes du chapitre Les variables et les constantes.

## E
### Énumération

    Une énumération est un type qui est défini par la liste des valeurs possibles.
   * Voir Énumération du chapitre Structures et énumérations.

### Espace de noms

    Un espace de noms permet de regrouper des classes dans un espace commun. Chaque classe utilisée doit alors être nommée en spécifiant l'espace de noms où elle est déclarée, à moins que la référence se fasse depuis le même espace de nom ou en utilisant le mot-clé using.
   * Voir le chapitre Les espaces de noms.

### Exception

    Une exception est un objet particulier signalant une erreur. Une exception est lancée au moment où l'erreur se produit. Elle se propage en remontant la pile d'appel jusqu'à ce qu'un traitement approprié soit rencontré.
   * Voir le chapitre Les exceptions.

### Expression de requête

    Une expression de requête (en anglais LINQ : Language Integrated Query) utilise une syntaxe intégrée au langage similaire à celles des requêtes de base de données, sur des ensembles de données (collections, itérateurs...) en utilisant les mêmes mots-clés : from, select, where, orderby, group...
   * Voir le chapitre Expression de requête.

## F
### Fonction

    Une fonction possède un nom et une série de paramètre et retourne une valeur. Lorsqu'elle est membre d'une classe, elle est plutôt appelée méthode.
   * Voir le chapitre Les fonctions.

## H
### Héritage

    Une classe peut hériter des membres (méthodes, attributs, propriétés) d'une ou plusieurs classes de base. En C#, une classe ne peut hériter que d'une seule classe de base (par défaut de System.Object).
   * Voir le chapitre Héritage de classes.

## I
### Indexeur

    Un indexeur dans une classe est une propriété spéciale permettant la surcharge de l'opérateur permettant d'adresser un élément d'un ensemble. Il est donc en général surchargé dans les classes servant de conteneur d'éléments (tableaux, listes, ...).
   * Voir Les indexeurs du chapitre Propriétés et indexeurs.

### Instance

    L'instance d'une classe est un objet alloué en mémoire. L'espace mémoire alloué est suffisant pour stocker chacun des attributs déclarés dans la classe et les classes dont elle hérite. La référence pointe vers cet espace alloué. Les méthodes de la classe, appelée pour cette instance, connaissent l'adresse de cet espace mémoire par l'utilisation explicite ou implicite de la référence this.
   * Voir le chapitre Les objets.
   * Voir Instance d'une classe du chapitre Les classes.

### Interface

    Une interface ne fait que décrire une liste de méthodes, sans implémentation. Le code de ces méthodes est fourni par les classes qui implémentent l'interface.
   * Voir le chapitre Interfaces.

## M
### Membre

    Il s'agit d'un attribut ou une méthode appartenant à la classe ou il est déclaré.
   * Voir Membres d'une classe du chapitre Les classes.

### Méthode

    Une méthode est membre d'une classe. Il s'agit en général d'une fonction ou procédure. En C#, toutes les méthodes sont des fonctions, c'est-à-dire qu'elles retournent une valeur du type déclaré.
   * Voir le chapitre Les fonctions.

## O
### Objet

    Un objet est une instance d'une classe. En comparaison avec la programmation impérative, la classe est un type, tandis que l'objet est une variable de ce type.
   * Voir le chapitre Les objets.
   * Voir Instance d'une classe du chapitre Les classes.

### Opérateur

    Les expressions emploient des opérateurs arithmétiques, binaires, logiques de comparaisons, ...
   * Voir le chapitre Les opérateurs.
    Les classes peuvent surcharger les opérateurs afin que leur instances puissent être directement utilisées dans des expressions (par exemple, pour une classe de nombre complexe).
   * Voir le chapitre Surcharge des opérateurs.

## P
### Polymorphisme

    Le polymorphisme est lié à l'héritage entre classes. Il permet d'appeler la méthode redéfinie d'une sous-classe alors que l'on possède une référence à une instance de la classe de base.
   * Voir le chapitre Héritage de classes.

### Propriété

    Une propriété est un couple de méthode (get et set) permettant respectivement de lire et d'écrire une valeur particulière de la classe. Cette propriété est utilisé comme un attribut classique d'une classe. Cela permet de contrôler par exemple la validité des modifications d'une valeur.
   * Voir Les propriétés du chapitre Propriétés et indexeurs.

## R
### Redéfinition

    Une méthode dans une classe peut être redéfinie dans une sous-classe (même nom, même signature) pour avoir un comportement différent. Dans le cas des méthodes abstraites d'une classe de base, la redéfinition permet de fournir une implémentation dans une sous-classe.
   * Voir Redéfinition de méthodes et de propriétés du chapitre Héritage de classes.

## S
### Signature

    La signature d'un membre d'une classe identifie ce membre. Deux membres d'une même classe ne peuvent avoir la même signature. En C#, la signature d'un attribut est composé de son nom uniquement. Celle d'une méthode est composée de son nom et de la liste des types de ses paramètres. Une sous-classe peut redéfinir une méthode de la classe de base en utilisant la même signature et type de retour que la méthode redéfinie.

### Structure

    Une structure contient plusieurs champs de différent types. Ce type de données permet de rassembler plusieurs informations à propos d'une même entité. En C#, les structures peuvent également avoir des méthodes comme les classes.
   * Voir Structure du chapitre Structures et énumérations.

### Surcharge

    Une même classe peut comporter plusieurs méthodes ayant le même nom si celles-ci se distinguent par leur signature (nombre et types de leur paramètres).
   * Voir Surcharge de méthode du chapitre Les fonctions.
   * Voir le chapitre Surcharge des opérateurs.

## T
### Tableau

    Un tableau contient plusieurs valeurs du même type.
   * Voir le chapitre Les tableaux.