В настоящее время я защищаюсь от потенциальной строки, которая может иметь значение NULL с помощью IsNullOrWhitespace (та же проблема с IsNullOrEmpty), но компилятор все еще жалуется:
Код: Выделить всё
public MyImage? LoadImage(string? filename)
{
if (string.IsNullOrWhiteSpace(filename))
{
return null;
}
return OtherMethod(filename); // here : warning from Visual Studio
}
// signature of other method :
public MyImage OtherMethod(string filepath);

в настоящее время у меня есть обходные пути, позволяющие компилятору понять:
- использовать имя файла оператора, допускающее нулевое значение!
- отключить предупреждение с помощью #pragma alert отключить CS8604 // Возможная нулевая ссылка аргумент.
- добавить еще одну проверку на значение null if(string == null || string.IsNullOrWhitespace(filename))
Есть ли другой способ узнать компилятор, который IsNullOrEmpty эффективно защищает от нуля ?
Подробнее здесь: https://stackoverflow.com/questions/603 ... elping-for
Мобильная версия