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)); }
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); }