Null-forgiving oder null-suppression operator
Wenn die Null-Prüfung des Compilers aktiviert wurde („enabled nullable annotation context“), wird das Ausrufezeichen „!“ Verwenden, um bewusst einen Nullwert zu erlauben.
Den „nullable annotation context“ aktivieren oder deaktivieren
Null-Prüfung des Compilers ein- ausschalten mit Preprocessor-Direktiven:
#nullable enable
#nullable disable
Die Null-Prüfung kann auch auf der Projektebene in der Projekt-Datei eingeschaltet werden:

Nach dem Aktivieren der Null-Prüfung zeigt der Compiler eine Warnung bei möglichen Nullwerten an:

Sollte ein bestimmter Wert auch Null sein dürfen, haben wir die Möglichkeit, den „Null-Forgiving Operator“ zu verwenden:

Nützliches
C# reference: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving