Types valeur nullables
Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 32 sur 66.
En C#, les types valeur comme int, float et bool ne peuvent normalement pas contenir de valeurs null. Les types valeur nullable permettent à ces types de représenter soit une valeur, soit null.
Déclarer un int régulier :
int regularNumber = 10;Déclarez un int nullable en utilisant la syntaxe ? :
int? nullableNumber = 20;Affecter null à un type nullable :
nullableNumber = null;Après l'exécution du code ci-dessus, nullableNumber ne contient aucune valeur (null).
Vérifier si un type nullable possède une valeur :
if (nullableNumber.HasValue)
{
Console.WriteLine("Value is: " + nullableNumber.Value);
}
else
{
Console.WriteLine("No value");
}Vous pouvez également utiliser l'opérateur de coalescence nulle pour fournir une valeur par défaut :
int definiteNumber = nullableNumber ?? 0;Défi
FacileCréez une méthode nommée ProcessNullableAge qui :
- Prend un paramètre nullable int appelé
age - Vérifie si l’âge a une valeur
- S’il a une valeur, affiche "Age is: X years" (où X est la valeur)
- S’il n’a pas de valeur, affiche "Age not provided"
- Retourne la valeur de l’âge s’il est présent, sinon retourne 0
Essayez vous-même
using System;
class Program
{
// Implémentez la méthode ProcessNullableAge ici
static void Main(string[] args)
{
string input = Console.ReadLine();
int? age = null;
if (input != "null")
{
age = int.Parse(input);
}
int result = ProcessNullableAge(age);
Console.WriteLine("Returned value: " + result);
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DDéclaration et initialisation en 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DTableaux irréguliersOpérations matricielles courantesRécapitulatif - Multidimensionnel4Techniques de contrôle de flux
Retours anticipésClauses de gardeInstructions de saut (goto)Break et ContinueAplatir les conditionnelles imbriquées2Prise de décision avancée
Conditions multiplesLogique booléenne complexeComparaison If vs SwitchInstructions Switch imbriquéesRécapitulatif - Décisions avancées5Gestion des exceptions
Bases du Try-CatchTypes d'exceptionsBlocs Catch multiplesManipulation de fichiersLe bloc FinallyUsing vs Try-FinallyExceptions personnaliséesRécapitulatif - Gestion des erreurs3Améliorations des boucles
Performance des bouclesItération de structures complexesChaque type de boucleRefactorisation des bouclesRécapitulatif - Boucles optimisées6Gestion des valeurs nulles
Les bases des références nullesTypes valeur nullablesPatterns de vérification de nullitéProgrammation défensiveRécapitulatif - Null Safety