static object parseParam(ref int i, ParameterInfo p, TestingWindow Window) { Window.WriteLine(); again: Window.RememberState(); parse2(p, out var res, out var o, Window); switch (o) { case ParseResult.DEFAULT: goto case ParseResult.OK; case ParseResult.OK: return(res); case ParseResult.BAD: //long diff = Window.CursorTop - cstart; //for(int i = 0; i < diff; i++) { Window.Write("\b"); } Window.RestoreState(); Window.WriteLine($"\"{res}\" has bad input format! Try again"); break; case ParseResult.CANCEL: i -= 2; Window.RestoreState(); return(null); default: throw new NotImplementedException(); } goto again; }
public static void ChooseMethods(IEnumerable <TestMethodExt> mtds, TestingWindow w) { w.Start(); var methods = mtds.ToArray(); again: w.WriteLine(); w.RememberState(); w.WriteLine("Choose method:"); for (int i = 0; i < methods.Length; i++) { w.WriteLine($"{i + 1}: {methods[i].Name}"); } w.Write(">"); var answ = w.ReadLine(); if (int.TryParse(answ, out var ch) && ch <= methods.Length && ch > 0) { methods[ch - 1].InvokeWithConsole(); } else { w.RestoreState(); w.WriteLine($"\"{answ}\" is really bad choice! Try again"); goto again; } }