X-Git-Url: http://git.sourceforge.jp/view?p=applistation%2FAppliStation.git;a=blobdiff_plain;f=all-get%2FUtil.cs;h=1f39428ec116b2fa971750e7f97c3e131e286c53;hp=621a0565b8e496581869d5666f8044c26960bbc6;hb=14f8a3160ea7b7b37acbf5188b7b33eb5bfbaf18;hpb=51006f0c2aaeb107a12f0d6ef6da2c265ba2ede8 diff --git a/all-get/Util.cs b/all-get/Util.cs index 621a056..1f39428 100644 --- a/all-get/Util.cs +++ b/all-get/Util.cs @@ -5,34 +5,22 @@ namespace AllGet sealed class Util { -// public static char Query(string msg, string selections, char defaultSelection) -// { -// Console.Write(msg); -// string response = Console.ReadLine(); -// response.Trim(); -// if (response.Length < 1) return defaultSelection; -// int resNum = selections.ToLower().IndexOf(response[0]); -// if (resNum < 0 || resNum >= selections.Length) { -// return Query(msg, selections, defaultSelection); -// } else { -// return selections[resNum]; -// } -// } + public static char Query(string msg, string selections, char defaultSelection) + { + int resNum = -1; + while (resNum < 0) { + Console.Write(msg); + string response = Console.ReadLine(); + response = response.Trim().ToLower(); + if (response.Length < 1) return defaultSelection; + resNum = selections.ToLower().IndexOf(response[0]); + } + return selections[resNum]; + } public static bool Confirm(string msg, bool defaultSelection) { - Console.Write(msg); - string response = Console.ReadLine(); - - switch (response.ToLower()) - { - case "y": - return true; - case "n": - return false; - default: - return defaultSelection; - } + return Query(msg, "yn", defaultSelection? 'y' : 'n') == 'y'; } } }