Die Entwickler der Programmiersprache C# haben die Planung nullable Referenztypen konkretisiert. In der am 29. August 2017 veröffentlichten Design-Diskussion beschreibt Mads Torgersen die damalige Richtung für C# 8. Ziel ist, mögliche Zugriffe auf null bereits bei der Kompilierung zu erkennen, statt den Fehler erst zur Laufzeit zu erhalten.
Referenztypen wie Zeichenketten konnten in C# traditionell sowohl ein Objekt als auch null enthalten. Die geplante Erweiterung soll diese beiden Fälle im Quelltext unterscheidbar machen. Eine Schreibweise mit Fragezeichen kennzeichnet dabei einen Wert, der null sein darf. Ohne diese Kennzeichnung kann der Compiler an geeigneten Stellen warnen, wenn ein Wert möglicherweise nicht auf ein Objekt verweist.
Warnungen statt Änderung des Laufzeitmodells
Die Designnotizen sehen dafür eine Analyse des Datenflusses vor. Der Compiler verfolgt, ob eine Referenz geprüft oder mit einem sicheren Wert belegt wurde, und kann daraus Warnungen ableiten. Das Feature soll bestehende Programme schrittweise einbeziehen. Die Referenzdarstellung in der Laufzeit wird dadurch nicht grundsätzlich geändert, weshalb die Prüfung vor allem eine zusätzliche Ebene für die Entwicklung bildet.
Für Werkzeuge und Spieleprojekte auf Basis von .NET kann die Prüfung Fehler in Schnittstellen und längeren Verarbeitungsketten früher sichtbar machen. Die Unity- und .NET-Entwicklungsumgebung Rider 2017.1 zeigt, in welchem Umfeld C#-Werkzeuge bereits damals eingesetzt wurden. Die konkrete Syntax und der Umfang der Funktion blieben im August 2017 noch Gegenstand der weiteren Sprachplanung.

