Exemplo n.º 1
0
        static bool ChangeType(Type t, FastQueue <string> paramQueue, out object result)
        {
            if (paramQueue.Count == 0)
            {
                RuntimeConsole.LogResultError("Not enough parameters");
                result = null;
                return(false);
            }

            string value = paramQueue.Dequeue();

            return(ChangeType(t, value, out result));
        }
Exemplo n.º 2
0
        public static bool ChangeType(Type t, string value, out object result, bool logError = true)
        {
            value = value.Trim();

            // Debug.Log("TryParse: " + value);
            if (t == typeof(string))
            {
                result = value; return(true);
            }
            else if (t.IsEnum)
            {
                try
                {
                    result = Enum.Parse(t, value, true);
                    return(true);
                }
                catch (Exception)
                {
                    if (logError)
                    {
                        RuntimeConsole.LogResultError("Cannot find '" + value + "'");
                    }
                }
            }
            else
            {
                try
                {
                    result = Convert.ChangeType(value, t);
                    return(true);
                }
                catch (Exception)
                {
                    if (logError)
                    {
                        RuntimeConsole.LogResultError("Cannot parse " + value);
                    }
                }
            }

            result = null;
            return(false);
        }