/// <summary> /// Возвращает список аргументов, полученных из их строкового представления. /// </summary> /// <param name="input">Строковое представление аргументов.</param> /// <param name="op">Идентификатор команды, аргументы которой рассматриваются.</param> /// <returns>Аргументы команды.</returns> private static int[] GetArguments(string input, PostOperationId op) { int[] result = null; List<string> t = input.Trim().Split(' ').ToList(); t.RemoveAll(x => x == " " || x == ""); try { if (op == PostOperationId.Decision) { if (t.Count != 2) ThrowInvalidNumParamsException(); result = new int[2]; result[0] = int.Parse(t[0]); result[1] = int.Parse(t[1]); } else if (op == PostOperationId.Stop) { if (t.Count > 0) ThrowInvalidNumParamsException(); result = new int[0]; } else { if (t.Count > 1) ThrowInvalidNumParamsException(); result = new int[t.Count]; if(result.Length == 1) { result[0] = int.Parse(t[0]); } } } catch(InvalidOperationTextException ex) { throw ex; } catch { throw new InvalidOperationTextException("Неверные параметры операции"); } return result; }
/// <summary> /// Инициализирует аргументы указанной выполненной операцией. /// </summary> /// <param name="op">Выполненная операция.</param> public PostOperationExecutedEventArgs(PostOperationId op) { _op = op; }