C-SHARP - 2.3 Types et Constantes

C# distingue plusieurs catégories de types primitifs, c'est-à-dire des types intégrés au langage à son niveau le plus bas. On les regroupe en quatre familles : nombres entiers, nombres réels, caractères et booléens. Chaque type C# correspond à un type équivalent dans le framework .NET (par exemple int devient Int32) et occupe un nombre d'octets précis en mémoire.

Les types primitifs courants

  • Entiers : byte (0 à 255), short (±32 000), int (±2 milliards, le plus utilisé), long (très grandes valeurs)
  • Réels : float, double (par défaut), decimal (plus de précision)
  • Caractère : char pour un caractère Unicode
  • Booléen : bool, valeurs true ou false

Particularité importante : par défaut, le compilateur C# considère un nombre à virgule comme un double. Pour déclarer un float, il faut ajouter le suffixe F après la valeur (par exemple 3.14F). Pour un decimal, le suffixe est M. Sans ce suffixe, le compilateur signale une erreur car il ne peut pas implicitement convertir un double en float. Outre les types primitifs, C# offre des types non primitifs : string, tableaux (arrays), énumérations, structures et classes — sujets des prochaines vidéos.

Constantes avec const

Une constante ressemble à une variable, mais sa valeur ne peut jamais changer une fois affectée. On l'utilise pour des valeurs fixes dans le programme : PV maximum d'un joueur, taux de TVA, vitesse de la lumière, etc. Pour la déclarer, on précède le type du mot-clé const.

const int minVie = 0;
const int vieMax = 100;
int vie = 50;

Console.WriteLine(vie);   // 50
vie = vie - 10;
Console.WriteLine(vie);   // 40

// vieMax = vieMax - 1;   // erreur de compilation : on ne peut pas modifier une constante

Toute tentative de modifier vieMax provoque une erreur de compilation : le compilateur garantit l'immuabilité. La variable vie, elle, peut évoluer librement (perte de points de vie, soins, etc.). Le raccourci cw suivi de Tab dans Visual Studio écrit automatiquement Console.WriteLine(). Les constantes sont précieuses pour fiabiliser le code : tout ce qui ne doit pas changer doit être déclaré const, ce qui évite des bugs accidentels.

En résumé

Cette leçon présente les types de données en C# : les types primitifs (entiers, réels, caractères, booléens) avec leurs plages de valeurs respectives, ainsi que les types non-primitifs comme les strings et tableaux. Elle explique ensuite les constantes comme des valeurs immuables, indispensables pour stocker des paramètres invariables dans un programme (exemple : les PV maximum d'un joueur).

Points clés

  • Les types primitifs incluent byte, short, int, long (entiers), float, double, decimal (réels), char (caractère) et bool (booléen), chacun occupant une taille mémoire différente
  • La plage de valeurs varie par type : byte de 0 à 255, int d'environ -2 à 2 milliards, long pour les très grandes valeurs
  • Pour déclarer un float, ajouter le suffixe 'f' ; pour decimal, le suffixe 'm' (le compilateur traite par défaut les décimales comme des doubles)
  • Les constantes, contrairement aux variables, ne peuvent pas être modifiées après leur déclaration
  • Les constantes servent à figer les valeurs invariables du programme (PV max, seuils, limites métier)

Questions fréquentes

Quels sont les types primitifs principaux à retenir en C# ?

Les plus utilisés sont : int (nombres entiers standards), float et double (nombres réels), char (caractère), et bool (vrai/faux). Le cours se concentre sur ces types car ils couvrent l'essentiel des besoins. La documentation Microsoft liste d'autres types moins fréquemment utilisés.

Pourquoi ajouter 'f' ou 'm' aux nombres réels ?

Parce que le compilateur C# traite par défaut les décimales comme des doubles. Pour indiquer un float, on écrit '3.14f' ; pour decimal, '3.14m'. Sans ce suffixe, une erreur de compilation se produit.

Quelle est la différence pratique entre une variable et une constante ?

Une variable peut être modifiée au cours du programme, tandis qu'une constante reste inchangée. Les constantes sont idéales pour les paramètres immuables, comme le PV maximum d'un joueur dans un jeu ou toute limite métier qui ne change jamais.