A nullable reference can be checked before choosing a display value.

nullable reference A nullable reference type can represent a missing object reference.

Nullable References

fallback
NullableReferences.cs
Replay: real traced execution (multi-file project)
using System;

class Program
{
    static void Main()
    {
        string? name = "Ada";
        string fallback = "guest";
        string display = name ?? fallback;

        Console.WriteLine($"hasName={name != null}");
        Console.WriteLine($"fallback={fallback}");
        Console.WriteLine($"display={display}");
    }
}
using System;

class Program
{
    static void Main()
    {
        string? name = "Ada";
        string fallback = "visitor";
        string display = name ?? fallback;

        Console.WriteLine($"hasName={name != null}");
        Console.WriteLine($"fallback={fallback}");
        Console.WriteLine($"display={display}");
    }
}
using System;

class Program
{
    static void Main()
    {
        string? name = "Ada";
        string fallback = "friend";
        string display = name ?? fallback;

        Console.WriteLine($"hasName={name != null}");
        Console.WriteLine($"fallback={fallback}");
        Console.WriteLine($"display={display}");
    }
}
  1. name ← Ada, fallback ← guest, display ← Ada

    4{5    static void Main()6    {7        string? name→ Ada = "Ada";8        string fallback→ guest = "guest"; //@fallback="visitor", "friend"9        string display→ Ada = nameAda ?? fallbackguest;1011        Console.WriteLine($"hasName={nameAda != null}");12        Console.WriteLine($"fallback={fallbackguest}");13        Console.WriteLine($"display={displayAda}");14    }
    outputhasName=True
    fallback=guest
    display=Ada
  1. name ← Ada, fallback ← visitor, display ← Ada

    4{5    static void Main()6    {7        string? name→ Ada = "Ada";8        string fallback→ visitor = "visitor";9        string display→ Ada = nameAda ?? fallbackvisitor;1011        Console.WriteLine($"hasName={nameAda != null}");12        Console.WriteLine($"fallback={fallbackvisitor}");13        Console.WriteLine($"display={displayAda}");14    }
    outputhasName=True
    fallback=visitor
    display=Ada
  1. name ← Ada, fallback ← friend, display ← Ada

    4{5    static void Main()6    {7        string? name→ Ada = "Ada";8        string fallback→ friend = "friend";9        string display→ Ada = nameAda ?? fallbackfriend;1011        Console.WriteLine($"hasName={nameAda != null}");12        Console.WriteLine($"fallback={fallbackfriend}");13        Console.WriteLine($"display={displayAda}");14    }
    outputhasName=True
    fallback=friend
    display=Ada