Chargement...

Types de données de base en C#

Types de données de base en C# : numériques, textuels, logiques, orientés objet et nullables.

En C#, les données sont stockées à l’aide de différents types, chaque type définissant l’utilisation de la mémoire et les opérations possibles. Ces types ont un impact direct sur le fonctionnement du programme. Dans cet article, nous aborderons les types de données numériques, textuels, logiques, dynamiques et nullable à l’aide d’exemples.

Le choix approprié du type de données est une étape essentielle dans l’apprentissage de C#. Une utilisation correcte améliore les performances, optimise la gestion de la mémoire et limite les risques d’erreurs. Maîtriser les types de données fondamentaux constitue ainsi une base solide pour le développement d’applications fiables.


Types numériques

Les types numériques servent aux entiers et aux nombres à virgule flottante. Pour les calculs financiers, on privilégie decimal.

TypeDescriptionExempleMémoire
intEntier (−2B - +2B)424 octets
longEntiers plus grands1000000008 octets
shortPetits entiers1202 octets
byte0 - 255 positif2001 octet
doubleFlottant (double précision)3.148 octets
floatFlottant (simple précision)2.5f4 octets
decimalDécimal pour usages financiers19.99m16 octets

int age = 25;
double pi = 3.14159;
decimal prix = 19.99m;

Console.WriteLine(age);
Console.WriteLine(pi);
Console.WriteLine(prix);

Remarque : Pour les calculs financiers, il est préférable d’utiliser decimal plutôt que double, car il réduit les erreurs d’arrondi et offre une meilleure précision.


Types textuels

char contient un seul caractère, string une séquence de caractères.


char premiereLettre = 'M';
string message = "Bonjour";

Console.WriteLine(premiereLettre);
Console.WriteLine(message);

Type logique

bool ne peut contenir que true ou false. Très utilisé dans les conditions.


bool estEtudiant = true;
bool estDiplome = false;

Console.WriteLine(estEtudiant);
Console.WriteLine(estDiplome);

Types objet et dynamiques

object, var et dynamic servent à un usage flexible.


object donnees = 42;
var texte = "Bonjour";
dynamic variable = 5;
variable = "Maintenant une chaîne";

Console.WriteLine(donnees);
Console.WriteLine(texte);
Console.WriteLine(variable);

Types nullables

Par défaut, les types valeur (comme int, double, bool) ne peuvent pas être null. L’ajout de ? les rend nullables.


int? note = null;

if (note == null)
    Console.WriteLine("Pas de note.");
else
    Console.WriteLine($"Note: {note}");

Quand Utiliser Chaque Type de Donnée ?


Affectations entre Types de Données et Conversions

En C#, il n’est pas toujours possible d’affecter directement des variables de types de données différents. Lorsque les types sont incompatibles, une erreur de compilation se produit.

Affectations Incorrectes


int nombre = 10;
string texte = nombre; // ERREUR

bool actif = true;
int valeur = actif;    // ERREUR

Dans les exemples ci-dessus, les affectations échouent car les types de données ne sont pas compatibles.

Erreur de conversion de type C# dans Visual Studio

Dans l’image ci-dessus, Visual Studio détecte immédiatement les affectations invalides entre types de données incompatibles. L’exemple montre une tentative d’affectation entre des types tels que bool et int, qui ne sont pas directement compatibles. L’éditeur souligne le problème en rouge et affiche une erreur de compilation comme CS0029.

Conversions Implicites


int petit = 5;
double grand = petit; // Valide

Les types numériques de plus petite taille peuvent être convertis automatiquement en types numériques plus larges.

Conversions Explicites


double pi = 3.14;
int entier = (int)pi; // 3

Les conversions susceptibles d’entraîner une perte de données ou de précision nécessitent une conversion explicite.


Résumé