string nonNullable = "Hello, World!"; // Non-nullable reference type
string? nullableString = null; // Nullable reference type
// Define as non-nullable, but tell compiler to ignore warning (Null forgiving)
// Same as FooBar fooBar = default!;
FooBar fooBar = null!;
// Define as non-nullable, assign using 'new' keyword
FooBar fooBar = new(Id: 1, Name: "Foo");
string? nullableMessage = null;
string message = nullableMessage ?? "Default message";
// or
private IPersonReader? reader;
public IPersonReader Reader
{
get => reader ??= new PersonReader();
set => reader = value;
I}
Using Nullability and Null Operators
string? input = null;
// If input is null, length becomes 0; otherwise, it gets the length of the string.
int? length = input?.Length ?? 0;
Console.WriteLine(length); // Output: 0