It means non-nullable.
For example:
int
can not be null by its nature but we can declare nullable int like:
Nullable<int> x;
or
int? x;
However, some classes can be null even if we don't say so.
for example
string x = null;
and we don't need to declare it as:
string? x;
To make sure that declared variable cannot be null (non-nullable), !
is used, so:
string! x = "somevalue";
it means that x can not accept null as a value.
https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/february/essential-net-csharp-8-0-and-nullable-reference-types