Есть ли способ сообщить компилятору, что следующая проверка гарантирует, что Item не равен нулю и что он безопасен в остальной части кода и что предупреждение CS8601 не требуется?
Предупреждение, которое технически верно, не учитывает, что оно обрабатывается в последующей строке, и не требует генерации предупреждения.
Console.WriteLine("Hello, World!");
var test = new Test();
test.Init();
public class Test
{
public record Item(string Name, int Total);
public Item MyItem { get; set; } = null!;
public int MyItemTotal { get; set; }
public void Init()
{
MyItem = GetItems().FirstOrDefault();
if (MyItem == null)
{
return;
}
else
{
MyItemTotal = MyItem.Total;
}
}
private List GetItems()
{
return new List();
}
}
В приведенном выше коде MyItem = GetItems().FirstOrDefault(); отображается как предупреждение, что технически правильно. Однако следующая строка выполняет проверку и завершает работу. Я ищу способ сказать компилятору: «Я знаю и разберусь с этим, не нужно предупреждать».
Основная причина в том, что я не хочу игнорировать предупреждения. и мне не нужны прагмы по всему коду.
Есть ли простой способ сделать это?
РЕДАКТИРОВАТЬ >
Вот пример веб-страницы Razor, где, если MyItem имеет значение null, мы будем перенаправляться со страницы. В этом коде можно с уверенностью предположить, что MyItem никогда не будет иметь значение null. Но предупреждение будет отображаться всегда, поскольку элемент не имеет значения NULL.
public Item MyItem { get; set; } = null!;
public IActionresult OnGet()
{
MyItem = GetItems().FirstOrDefault();
if (MyItem == null)
{
return Redirect("/");
}
return Page();
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... s-performe
Как устранить предупреждение о назначении нулевой ссылки, когда выполняется и обрабатывается проверка, допускающая значе ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Mypy говорит «несовместимые типы в назначении» при назначении из множественного наследства
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
«Несовместимые типы в назначении» при назначении из множественного наследства в Mypy
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-