Что такое!! оператор после имени параметра в C#? [дубликат]C#

Место общения программистов C#
Гость
Что такое!! оператор после имени параметра в C#? [дубликат]

Сообщение Гость »

В этой строке исходного кода среды выполнения .NET мы увидим:

Код: Выделить всё

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

// ...
}
После параметра value стоят два восклицательных знака.
Сначала я думал, что это может быть какая-то особенность языка C#, которую я пропустил, связанная с аннотациями, допускающими значение NULL, пока не понял, что это даже недопустимый код C# и все еще компилируется в среде выполнения .NET.
Клавиша !! не имеет смысла для Visual Studio. Я использую новейшие возможности языка C# и не компилируется:
Изображение

Оно определенно компилируется.
Что здесь происходит? Почему в официальном дереве исходного кода среды выполнения есть недопустимая строка C#, и он там тоже компилируется?

Подробнее: https://stackoverflow.com/questions/799 ... -name-in-c

Вернуться в «C#»