Imagine a wonderland where reference types aren't implicitly 'nullable'... Somewhere where you explicitly need to define them as nullable, just like you do with value types. Imagine no unnecessary null-checks, while getting warnings in your IDE where you should check for nulls. No more NullReferenceExceptions!
Since C# 8 you can opt-in for this utopian experience!
Let's go down the rabbit hole of the non-nullable reference types and discover all of its goodness. It's more than just adding a '?' here or a '!' there.