private double AsBaseReference() { switch (Reference) { case PressureReference.Absolute: return(Pressure.Value); case PressureReference.Gauge: return(ReferencedPressure.ToUnit(Pressure.Unit).Value + Pressure.Value); case PressureReference.Vacuum: return(ReferencedPressure.ToUnit(Pressure.Unit).Value - Pressure.Value); default: throw new NotImplementedException($"Can not convert {Reference} to base reference."); } }
private double AsBaseNumericType(PressureReference reference) { if (Reference == reference) { return(Pressure.Value); } var baseReferenceValue = AsBaseReference(); var negatingValue = Reference == PressureReference.Vacuum ? -1 : 1; switch (reference) { case PressureReference.Absolute: return(baseReferenceValue); case PressureReference.Gauge: return(baseReferenceValue - ReferencedPressure.ToUnit(Pressure.Unit).Value); case PressureReference.Vacuum: return(ReferencedPressure.ToUnit(Pressure.Unit).Value - negatingValue * baseReferenceValue); default: throw new NotImplementedException($"Can not convert {Reference} to {reference}."); } }