Example #1
0
 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");
     }
 }
Example #2
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;
 }
Example #3
0
 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;
 }
Example #4
0
 public override int GetHashCode()
 {
     return(UnitExponents.GetHashCode() ^ _conversionFactor.GetHashCode());
 }
Example #5
0
 private Quantity(double value, UnitExponents unitExponents)
 {
     _SIvalue       = value;
     _unitExponents = unitExponents;
 }
Example #6
0
 public Quantity(double value, Unit unit)
 {
     _SIvalue       = unit.ConvertToSI(value);
     _unitExponents = unit.UnitExponents;
 }