internal static int Int32(string msg) { Console.WriteLine(msg); ConsoleKeyInfo KeyInfo; Handler minusHandler = new IntMinusHandler(); Handler digitHandler = new IntDigitHandler(); Handler backspaceHandler = new IntBackspaceHandler(); Handler enterHandler = new IntEnterHandler(); minusHandler.SetSuccessor(digitHandler); digitHandler.SetSuccessor(backspaceHandler); backspaceHandler.SetSuccessor(enterHandler); do { KeyInfo = Console.ReadKey(true); if (str.ToString().Contains('-')) { digitHandler.HandleRequest(KeyInfo); } else { minusHandler.HandleRequest(KeyInfo); } }while (KeyInfo.Key != ConsoleKey.Enter); return(Value); }
public override void HandleRequest(ConsoleKeyInfo request) { if (request.Key == ConsoleKey.Enter && IntBackspaceHandler.StrIsNotEmpty()) { Console.WriteLine(); try { InputInt32.Value = int.Parse(InputInt32.Str.ToString()); } catch (OverflowException e) { Console.WriteLine(e.Message); } } else { Console.Beep(); } }