Operator null-forgiving (!) – operator wprowadzany z C#8, mówi narzędziom do statycznej analizy kody, że dana zmienna referencyjna nie jest null. Bardzo przydatny operator w sytuacjach kiedy wiemy o tym, że zmienna nie może być w danym miejscu nullem bo np. wyżej jest to sprawdzane wewnątrz innej metody a statyczna analiza kodu zgłasza nam irytujące ostrzeżenie. Operator ten nie wpływa na runtime kodu, jedynie na statyczną analizę kodu.

Poniższa wersja kodu z użyciem operatora ! (wykrzyknik) już nie będzie nam zgłaszać ostrzeżenia:

1
2
3
4
IList<SomeDev> devs = new List<SomeDev>() { new SomeDev(1), new SomeDev(3), new SomeDev(4) };
var dev = devs.SingleOrDefault(x => x.SkillLevel == 1);

Console.WriteLine(dev!.Name);