public Unit( UnitExponents unitExponents, double conversionFactor ) : this(unitExponents, conversionFactor, unitExponents.ToString()) { if (conversionFactor != 1.0d) { throw new InvalidOperationException("Symbol is required if ConversionFactor is not equal to 1.0"); } }
public Unit( UnitExponents unitExponents, Func <double, double> convertFromSI, Func <double, double> convertToSI, string symbol ) { UnitExponents = unitExponents; _conversionFactor = 0d; ConvertToSI = convertToSI; ConvertFromSI = convertFromSI; Symbol = symbol; }
public Unit( UnitExponents unitExponents, double conversionFactor, string symbol ) { if (conversionFactor == 0d) { throw new ArgumentException("ConversionFactor must not be zero", "conversionFactor"); } UnitExponents = unitExponents; _conversionFactor = conversionFactor; ConvertToSI = d => d / _conversionFactor; ConvertFromSI = d => d * _conversionFactor; Symbol = symbol; }
public override int GetHashCode() { return(UnitExponents.GetHashCode() ^ _conversionFactor.GetHashCode()); }
private Quantity(double value, UnitExponents unitExponents) { _SIvalue = value; _unitExponents = unitExponents; }
public Quantity(double value, Unit unit) { _SIvalue = unit.ConvertToSI(value); _unitExponents = unit.UnitExponents; }