Можно ли заменить на какой-нибудь Generic или что-то в этом роде?

Имеется ряд функций:

public Result<string> WriteOrUpdate(string name, ModelDB<decimal> value)
{
    if (!_properies.TryGetValue(name, out var property))
    {
        return Result<string>.NotFound();
    }

    value.DBValue = (long)Math.Round(value.Value * property.Scale);

    var result = _repo.WriteOrUpdate(value, property.Id);

    return result;
}

public Result<string> WriteOrUpdate(string name, ModelDB<double> value)
{
    if (!_properies.TryGetValue(name, out var property))
    {
        return Result<string>.NotFound();
    }

    value.DBValue = (long)Math.Round(value.Value * property.Scale);

    var result = _repo.WriteOrUpdate(value, property.Id);

    return result;
}

И данная функция имеется для каждого типа данных: double, int, byte, short, long, float

Можно ли как-то подобную запись сократить?

UPD: Можно использовать фичу, которая существует на данный момент в превью версии В данном ответе это расписано: Operator '<' cannot be applied to operands of type 'T' and 'T'

Или использовать dynamic:

dynamic dynamicValue = value.Value;
value.DBValue = (long)Math.Round(dynamicValue * property.Scale);

Ответы (0 шт):