Добавьте ? к типу, если переменная может быть null:
string? name = Console.ReadLine();
Теперь компилятор знает, что name может содержать null, и проверяет ваш код на безопасное обращение с этим значением.
Используйте проверку на null:
if (name != null)
{
Console.WriteLine(name.Length); // Безопасно
}
Отключите nullable context (не рекомендуется):
Добавьте в .csproj-файл:
<Nullable>disable</Nullable>
Но лучше работать с nullable-проверками — это предотвращает ошибки.
Примеры
// Безопасный код с nullable-типом
string? input = Console.ReadLine();
if (input is not null)
{
Console.WriteLine(input.ToUpper());
}
// Опасный код (возможен NullReferenceException)
string input = Console.ReadLine()!; // "!" подавляет предупреждение (не рекомендуется)
Console.WriteLine(input.Length);
зачем нужен знак вопроса после типа?
без него компилятор подчеркивает метод зеленым курсивом. (да, у меня VS)