Следующие обобщенные функции c, использующие ссылки на Nullable, работали нормально, пока я не установил VS community 16.5.0 preview 2.0 (до этого я использовал Preview 1.0, я использую. NET Core 3.0 / 3.1):
static async Task<C> Test<C>(MyClass a, MyClass b, Func<MyClass, Task<C>> extract) where C : class? =>
await extract(a) ?? (b is {} ? await extract(b) : null);
static T MinOrDefault<T>(this IEnumerable<T> enumerable) =>
enumerable.Any() ? enumerable.Min() : default;
Но теперь оба выдают ошибку CS8603 Possible null reference return.
Кто-нибудь знает, является ли это поведение преднамеренным? И есть ли хороший способ исправить это?
Подобный вопрос был задан здесь , но на самом деле он не имеет удовлетворительного ответа; тем более что он не очень хорошо работает с Task
с, как упомянуто в комментарии .