Я конвертирую кодовую базу в C # 8 с обнуляемыми ссылочными типами. Я сталкивался с методом, подобным методу в этом вопросе , но asyn c.
public async Task<T> GetAsync<T>()
{
// sometimes returns default(T); => warning CS8603 Possible null reference return
}
T может быть любым типом, включая ссылочные типы, допускающие значение NULL или типы значений, допускающие значение NULL.
Чтобы было ясно, я понимаю, ПОЧЕМУ этот метод вызывает предупреждение. Я хотел бы знать, какие аннотации можно использовать для ее решения.
- Я знаю, что могу использовать #nullable disable или
default(T)!
, но я надеялся на что-то меньшее " молот ". - Я знаю, что не могу использовать
[return: MaybNull]
, потому что это относится к самому Task
, а не к T
.
Есть ли какой-либо другой атрибут / аннотации, которые я могу применить, чтобы сделать компилятор счастливым, или default(T)!
мой единственный вариант?