public static BaseUnit Define(string name, string symbol, string measure) { if (__definedUnits.Exists(unit => unit.Names.Any( unitName => unitName.Name == name))) { throw new ArgumentException( String.Format("A base unit with the name '{0}'" + "has already been defined", name), "name"); } if (__definedUnits.Exists(unit => unit.Names.Any( unitName => unitName.Symbol == symbol))) { throw new ArgumentException( String.Format("A base unit with the symbol '{0}'" + "has already been defined", symbol), "symbol"); } var newUnit = new BaseUnit(name, symbol, measure); __definedUnits.Add(newUnit); return newUnit; }
public int this[BaseUnit baseUnit] { get { if (!_baseUnitExponents.ContainsKey(baseUnit)) return 0; return _baseUnitExponents[baseUnit]; } protected set { if (!_baseUnitExponents.ContainsKey(baseUnit)) _baseUnitExponents.Add(baseUnit, value); _baseUnitExponents[baseUnit] = value; } }