示例#1
0
        public static bool CanConvert(string from, string to, double fromPower = 1, double toPower = 1)
        {
            if (toPower != fromPower)
            {
                return(false);
            }
            if (from == to)
            {
                return(true);
            }
            double m;

            return(UnitMultipliers.TryGetValue(from + "-" + to, out m) || UnitMultipliers.TryGetValue(to + "-" + from, out m));
        }
示例#2
0
        public static bool AddOrReplaceUnitMultiplier(string from, string to, double multiplier)
        {
            string key    = $"{from}-{to}";
            bool   exists = UnitMultipliers.ContainsKey(key);

            if (exists)
            {
                UnitMultipliers[key] = multiplier;
            }
            else
            {
                UnitMultipliers.Add(key, multiplier);
            }
            return(UnitMultipliers.ContainsKey(key));
        }
示例#3
0
        public static double GetUnitMultiplier(string from, string to)
        {
            double multiplier;

            if (from == to)
            {
                return(1);
            }
            if (UnitMultipliers.TryGetValue(from + "-" + to, out multiplier))
            {
                return(multiplier);
            }
            if (UnitMultipliers.TryGetValue(to + "-" + from, out multiplier))
            {
                return(1 / multiplier);
            }
            throw new InvalidConversionException("Could not find unit multiplier for " + from + " to " + to);
        }