Propriétés HasValue et Value
Examinez et accédez aux valeurs nullables en toute sécurité.
Propriétés HasValue et Value est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.
Deux propriétés essentielles
Toute valeur nullable expose HasValue (un bool) et Value (la valeur sous-jacente). Ce sont vos outils pour l’inspecter en toute sécurité.
using System;
class Program {
static void Main() {
int? n = 5;
Console.WriteLine(n.HasValue);
Console.WriteLine(n.Value);
}
}HasValue vérifie la présence
HasValue vaut true lorsqu’une valeur réelle est présente et false lorsqu’elle est nulle.
using System;
class Program {
static void Main() {
int? a = 10;
int? b = null;
Console.WriteLine(a.HasValue);
Console.WriteLine(b.HasValue);
}
}Lire Value en toute sécurité
Vérifiez toujours HasValue avant de lire Value, car lire Value lorsqu’il n’y a aucune valeur provoque une exception.
using System;
class Program {
static void Main() {
int? n = 42;
if (n.HasValue) {
Console.WriteLine(n.Value * 2);
}
}
}Accéder à Value quand la valeur est nulle provoque une exception
Si vous lisez Value alors que la valeur nullable est nulle, C# déclenche une InvalidOperationException. La vérification vous protège.
using System;
class Program {
static void Main() {
int? n = null;
try {
Console.WriteLine(n.Value);
} catch (InvalidOperationException) {
Console.WriteLine("Caught: no value");
}
}
}GetValueOrDefault
GetValueOrDefault() renvoie la valeur lorsqu’elle est présente, sinon la valeur par défaut du type (0 pour int, faux pour bool).
using System;
class Program {
static void Main() {
int? n = null;
Console.WriteLine(n.GetValueOrDefault());
}
}GetValueOrDefault avec une valeur de remplacement
Indiquez un argument pour choisir votre propre valeur de remplacement : GetValueOrDefault(99) renvoie 99 lorsque la valeur est nulle.
using System;
class Program {
static void Main() {
int? n = null;
Console.WriteLine(n.GetValueOrDefault(99));
int? m = 7;
Console.WriteLine(m.GetValueOrDefault(99));
}
}Modèle : vérifier puis utiliser
Un modèle courant associe HasValue et Value dans une branche claire.
using System;
class Program {
static void Describe(int? score) {
if (score.HasValue)
Console.WriteLine("Score is " + score.Value);
else
Console.WriteLine("No score yet");
}
static void Main() {
Describe(88);
Describe(null);
}
}Conversion implicite inverse
Vous pouvez affecter une valeur nullable à un type ordinaire uniquement après avoir vérifié qu’elle contient une valeur, puis lu Value.
using System;
class Program {
static void Main() {
int? maybe = 15;
if (maybe.HasValue) {
int real = maybe.Value;
Console.WriteLine(real + 5);
}
}
}Valeur par défaut d’une valeur nullable
Une valeur nullable qui n’a pas été explicitement définie vaut par défaut null ; HasValue vaut donc false.
using System;
class Program {
static void Main() {
int? n = default;
Console.WriteLine(n.HasValue);
}
}Utilisation dans des agrégations
Parcourez les données en ignorant les valeurs nulles grâce à HasValue, afin de calculer des totaux fiables.
using System;
class Program {
static void Main() {
int?[] readings = { 10, null, 5, null, 8 };
int sum = 0;
foreach (var r in readings)
if (r.HasValue) sum += r.Value;
Console.WriteLine(sum);
}
}GetValueOrDefault dans les boucles
GetValueOrDefault peut simplifier le code lorsque les valeurs nulles doivent être traitées comme zéro.
using System;
class Program {
static void Main() {
int?[] readings = { 10, null, 5 };
int sum = 0;
foreach (var r in readings)
sum += r.GetValueOrDefault();
Console.WriteLine(sum);
}
}Vérification rapide
Vérifiez vos connaissances sur les propriétés des valeurs nullables.
Récapitulatif
HasValue vous indique si une valeur nullable contient une valeur, et Value la récupère ; toutefois, lire Value lorsqu’elle est nulle provoque une exception.
GetValueOrDefault() renvoie en toute sécurité la valeur ou une valeur de remplacement (la valeur par défaut du type ou celle que vous fournissez), ce qui le rend idéal pour les sommes et les lectures sûres.
Questions Fréquemment Posées
La leçon « Propriétés HasValue et Value » est-elle gratuite ?
Oui — le texte complet de « Propriétés HasValue et Value » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Propriétés HasValue et Value » ?
Examinez et accédez aux valeurs nullables en toute sécurité. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C# Academy ?
Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Propriétés HasValue et Value » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?
Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Présentation des types de valeurs nullables
- Propriétés HasValue et Value
- Opérateurs de coalescence des valeurs nulles
- Valeurs nullables dans les calculs