A nullable value type can hold either a value or null.

Nullable Values

NullableValues.cs
using System;

class Program
{
    static void Main()
    {
        int? score = ;
        string status = score.HasValue ? "has score" : "missing";
        int displayed = score ?? 0;

        Console.WriteLine($"status={status}");
        Console.WriteLine($"displayed={displayed}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int? score = ;
        string status = score.HasValue ? "has score" : "missing";
        int displayed = score ?? 0;

        Console.WriteLine($"status={status}");
        Console.WriteLine($"displayed={displayed}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int? score = ;
        string status = score.HasValue ? "has score" : "missing";
        int displayed = score ?? 0;

        Console.WriteLine($"status={status}");
        Console.WriteLine($"displayed={displayed}");
    }
}
nullable A nullable value type uses `?`, such as `int?`, to allow `null`.