Title Edit: Should have more closely reviewed my title: title is referring to “nullable reference types,” not “nullability reference types.”
Introduced in C# 8.0, I would say that nullable reference types were somewhat quietly introduced to C#, unless you’re someone who pays special attention to release notes and the like.
With .Net 5.0’s release and even more progress made updating the BCL with nullable reference types, I guess I expected there to be a bigger push, in documentation or maybe in tools such as Visual Studio, to enable this setting by default on all new projects.
However as of right now, as far as I can tell, VS / VSCode do not out of the box go out of their way to suggest toggling this setting on your project, nor do they seem to raise any kind of awareness that the setting exists at all.
Further, IMO the only “correct” way to use nullable reference types is to have null incompatibilities treated as proper errors, which, even if you’ve managed to turn nullable reference types on, requires further tinkering with your project file(s) directly to enable, with again no special help from any MS tooling.
Similarly, to my knowledge none of the dotnet CLI templates / settings help the user create new projects with nullable reference types / warnings as errors enabled by default.
Does anyone know what’s up with this? IMO this is a huge language feature that makes a massive difference in how you might write your code, and yet it’s almost like MS only want the “informed” to find it. Isn’t in their best interest to get as many people and libraries with this feature turned on as possible? Does anyone know why this isn’t being pushed harder? Are they trying to wait until the BCL has 100% null coverage so they minimize impacts of future framework upgrades?