What is the !! operator after a parameter name in C#? [duplicate]

1 day ago 2
ARTICLE AD BOX

In the .NET Runtime Source Code, on this line, we will see:

public override string Get( string value!! ) { if ( value.Length == 0 ) { return string.Empty; } // ... }

The value parameter has two exclamation marks after it.

At first, I thought this may be some C# language feature that I missed related to nullability annotations, until I realized, this is not even valid C# code, and is still compiled in the .NET Runtime.

The !! does not make sense for Visual Studio. I'm using the latest C# language features and does not compile:

Error

It is definitely compiled.

What's going on here? Why is there an invalid line of C# in the official runtime source tree, yet it still compiles there?

Read Entire Article