Тип '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();
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос