Тип 'T' должен быть необнуляемым типом значения, чтобы использовать его в качестве параметра 'T' в универсальном типе или методе 'System.Nullable <T>'.
Почему я получаю эту ошибку в следующем коде?
void Main()
{
int? a = 1;
int? b = AddOne(1);
a.Dump();
}
static Nullable AddOne(Nullable nullable)
{
return ApplyFunction(nullable, (int x) => x + 1);
}
static Nullable ApplyFunction(Nullable nullable, Func function)
{
if (nullable.HasValue)
{
T unwrapped = nullable.Value;
TResult result = function(unwrapped);
return new Nullable(result);
}
else
{
return new Nullable();
}
}