Nullable and Pattern Matching
Nullable References
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
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}");
}
}
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
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
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