Consider my detailed proposal for non-nullable references (and safe nullable references)
Here are the benefits very briefly:
1. Minimal syntax changes.
2. Null reference exceptions eliminated.
3. No changes to code compilation as such (only introduces compiler error checks).
4. Existing code will continue to compile unchanged.
See my full proposal at:
There is a general suggestion for this type of functionality which has quite a lot of votes: