Maison >développement back-end >C++ >Que signifie le point d'interrogation dans les types de valeur C# (par exemple, « int ? ») ?

Que signifie le point d'interrogation dans les types de valeur C# (par exemple, « int ? ») ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-26 08:51:10753parcourir

What Does the Question Mark Mean in C# Value Types (e.g., `int?`)?

Points d'interrogation dans les types de valeur C# : Comprendre les types nullables

Le point d'interrogation "?" joue divers rôles dans la programmation, y compris son utilisation dans les instructions conditionnelles. Cependant, il apparaît également dans les types valeur, tels que public int? myProperty. Dans ce cas, à quoi sert le point d’interrogation ?

Type nullable

Le point d'interrogation après le type valeur indique qu'il s'agit d'un type nullable. Un type nullable est une instance spéciale de la structure System.Nullable qui peut accueillir toute la plage de valeurs valides du type sous-jacent, ainsi qu'une valeur nulle spéciale.

Cette fonctionnalité est particulièrement utile lorsqu'il s'agit de scénarios de bases de données ou d'autres sources de données dans lesquels certains éléments peuvent manquer intentionnellement de valeurs. Par exemple, une colonne de table de base de données autorisant les valeurs booléennes peut contenir vrai, faux ou nul.

Exemple de code

Considérez l'extrait de code suivant :

<code class="language-csharp">class NullableExample
{
    static void Main()
    {
        int? num = null;

        // 判断 HasValue 是否为 true
        if (num.HasValue)
        {
            System.Console.WriteLine("num = " + num.Value);
        }
        else
        {
            System.Console.WriteLine("num = Null");
        }

        // 如果 num 为 null,则赋值默认值 0
        int y = num.GetValueOrDefault();

        // 如果 num.HasValue 为 false,则抛出 InvalidOperationException
        try
        {
            y = num.Value;
        }
        catch (System.InvalidOperationException e)
        {
            System.Console.WriteLine(e.Message);
        }
    }
}</code>

Ici, la variable num est définie comme un entier nullable (int?) qui peut contenir une valeur entière ou nulle. L'attribut HasValue nous permet de vérifier si une variable contient une valeur valide. Si HasValue est vrai, nous pouvons utiliser num.Value pour obtenir la valeur réelle. Sinon, num est considéré comme nul.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn