Чтобы ваш класс возвращал null
значение без предупреждения CS864, вы можете немного переписать свой код
public T? Foo<T>(T obj)
where T : class
{
return null;
}
Вопрос о class?
является открытым вопросом GitHub прямо сейчас, посмотрите здесь . Ограничение class?
еще не реализовано, и поэтому компилятор угрожает ему, как обычный class
, и пока генерирует A null literal introduces a null value when 'T' is a non-nullable reference type
.
Вы также можете обратиться к разделу The issue wit T?
в этой статье чтобы увидеть некоторые детали. Пример кода выше - рекомендуемый способ работы с обнуляемым generi c type