Rider отображает предупреждение о том, что переменная может иметь значение NULL, даже если присутствует атрибут, которыйC#

Место общения программистов C#
Ответить
Anonymous
 Rider отображает предупреждение о том, что переменная может иметь значение NULL, даже если присутствует атрибут, который

Сообщение Anonymous »

Я создал обычный метод TryGet, но добавил атрибут NotNullWhen(true) к его параметру out, что означает, что переменная не может иметь значение null, если метод возвращает true. При дальнейшем использовании метода Райдер пишет предупреждение о том, что переменная может иметь значение null, несмотря на то, что метод возвращает true. Почему это происходит? Есть ли способ избавиться от предупреждения, не игнорируя его?
private bool TryGet(bool flag, [NotNullWhen(true)]out string? str)
{
if (flag)
{
str = "568";
return true;
}
else
{
str = null;
return false;
}
}

private int Test()
{
var test = TryGet(true, out var str);
var test2 = test ? int.Parse(str) : 0; //For "str": possible null reference argument
return test2;
}


Подробнее здесь: https://stackoverflow.com/questions/731 ... -is-presen
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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