Programmation C sharp/Les variables et les constantes

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche
Programmation C#
Programmation C#
Sommaire
Le langage
Programmation avancée
API .Net
Ressources
Modifier ce modèle

Les variables[modifier | modifier le wikicode]

Une variable réserve une place en mémoire pour stocker des données : résultats d'expressions, données lues depuis un fichier, ... Elle est associée à un nom.

Déclaration[modifier | modifier le wikicode]

Une variable possède un nom et un type. Ce type détermine ce que peut stocker la variable : un nombre, une chaîne de caractère, un objet d'une classe particulière...

La syntaxe est la suivante :

type nom [ = expression ] ;

Exemples :

double prix_unitaire;
int quantite = 50;
string article = "Pommes";
bool rabais = false;

Assigner une variable (initialiser) à la déclaration n'est pas obligatoire. Dans ce cas, elle possède la valeur par défaut correspondant au type :

  • la valeur par défaut des types numériques et caractères (char) est zéro (0),
  • la valeur par défaut du type booléen (bool) est false,
  • la valeur par défaut des types références (objet, chaîne de caractère, tableaux) est null,
  • la valeur par défaut des types énumérés (enum) est celle qui correspond au type sous-jacent (int par défaut).

Il est possible de regrouper la déclaration de plusieurs variables du même type en utilisant une virgule pour séparer les différentes variables.

Exemple :

int quantite = 50, nombre, quantite_en_stock = 100 ;

Ou en plaçant une variable par ligne pour plus de clarté :

int quantite = 50,
    nombre,
    quantite_en_stock = 100 ;

Utilisation[modifier | modifier le wikicode]

Une variable est utilisée pour stocker des résultats intermédiaires, des données qui serviront ultérieurement. La valeur d'une variable peut être modifiée autant de fois que nécessaire.

Exemple :

prix_unitaire = 1.50;
if (rabais) prix_unitaire = prix_unitaire - 0.20;
double prix_total = prix_unitaire * quantite ;

Portée d'une variable[modifier | modifier le wikicode]

La portée d'une variable est l'ensemble des emplacements dans le code où cette variable est accessible. En dehors de cette portée, l'utilisation du même nom correspondra à une autre variable ou plus souvent à aucune variable (erreur de compilation dans ce cas).

La portée d'une variable correspond au bloc d'accolades où elle est déclarée. Une variable membre d'une classe est déclarée au niveau de la classe et est accessible depuis les autres membres de la classe (méthodes, indexeurs, propriétés, ...). Une variable locale est déclarée à l'intérieur d'un bloc d'accolades (celui de la méthode/propriété membre, ou un bloc interne à celle-ci).

Exemple :

public class Exemple
{
    // variable membre de la classe :
    int nombre = 5; // portée : la classe Exemple

    public int MethodeUne()
    {
        // variable locale à la méthode :
        int nombre = 10; // portée : la méthode MethodeUne()

        return nombre +     // la variable locale
               this.nombre; // la variable membre
        // retourne 10 + 5 , c'est à dire 15
    }

    public int MethodeDeux()
    {
        System.Console.WriteLine("Nombre = " + nombre); // la variable membre
        // Nombre = 5
        {

            int nombre = 20; // variable locale au bloc d'accolades
            System.Console.WriteLine("Nombre = " + nombre); // la variable locale
            // Nombre = 20

        } // la variable locale est hors de portée
        System.Console.WriteLine("Nombre = " + nombre); // la variable membre
        // Nombre = 5
    }
}

Durée de vie d'une variable[modifier | modifier le wikicode]

La durée de vie d'une variable est la période durant laquelle une variable existe, c'est à dire conserve son emplacement en mémoire et durant laquelle elle peut donc stocker des données.

Variable en lecture seule[modifier | modifier le wikicode]

Une variable peut être déclarée en lecture seule en utilisant le mot-clé readonly.

Exemple :

readonly double taux_tva = 19.6;

Il n'est pas obligatoire d'initialiser une variable en lecture seule lors de sa déclaration. Ce qui permet de déterminer la valeur en fonction d'autres données, ou de lire sa valeur depuis un fichier par exemple, et d'empêcher sa modification après affectation.

Exemple :

class Facture
{
    public readonly double taux_tva;
    public Facture(bool taux1)
    {
        if (taux1) taux_tva = 19.6;
        else taux_tva = 5.5;
    }
}

Les constantes[modifier | modifier le wikicode]

Une constante nommée est associée à une valeur pour toute la durée de l'application. Sa valeur ne peut changer.

Déclaration[modifier | modifier le wikicode]

La syntaxe est similaire à celle de la déclaration d'une variable, excepté que le mot clé const précède la déclaration, et que l'initialisation à la déclaration est obligatoire :

const type nom = expression ;

Exemple :

const double prix_unitaire_unique = 1.50 ;
const double taux_euro_en_francs = 6.55957 ;

Comme les variables il est également possible de regrouper la déclaration de plusieurs constantes du même type :

const double
    prix_unitaire_unique = 1.50 ,
    taux_euro_en_francs = 6.55957 ;

N.B. : Une constante est implicitement statique. Il est donc inutile d'ajouter le mot-clé static, sinon le compilateur génère une erreur.

Types des constantes[modifier | modifier le wikicode]

Le mot const ne s'applique qu'aux types standards numériques, booléens, string, et énumérations.

Portée et durée de vie d'une constante[modifier | modifier le wikicode]

Les mêmes règles que celles pour les variables s'appliquent également aux constantes.