Можно ли заменить на какой-нибудь 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);