Как стать автором
Обновить

Комментарии 12

НЛО прилетело и опубликовало эту надпись здесь
сделано
НЛО прилетело и опубликовало эту надпись здесь
Насколько я понял, у вас параметры приложения должны идти в строгом порядке? Т. е. program.exe /-flag «Max» уже не покатит?
Не прокатит, сделано это было специально,

во-первых, чтобы не путать пользователей и разработчиков — сначала идут все обязательные параметры в строго определенном порядке (как в методе), а потом все опциональные в любом порядке, т.е. если у нас два необязательных параметра, то вызовы program.exe «max» /flag1 /flag2 и program.exe «max» /flag2 /flag1 — равнозначны.

А во-вторых за основу был взят принцип который применяется в стандартных командах Windows. Теоретически можно переписать движок, чтобы он использовал другую нотацию.
Спасибо, очень удобно получилось — гораздо более читабельный код по сравнению с парсингом аргументов с помощью select(parameter){}.

Только один вопрос: запуск «myProgram.exe help subcommand» подразумевает обработку команды help отдельным [Action], или должен выдаваться Description для subcommand без лишних телодвижений с моей стороны?

Последнего пока добиться не удалось.
Это баг, в исходниках уже исправлен, сегодня планирую выложить
Сделано
Спасибо!
Идея интересная, думаю можно развить до размера полноценного фреймворка который сможет, например, делать parameters-to-object mapping, вызывать делегаты, создавать типы через reflection и еще много всего. Штука эта мне кажется полезной, например, в тех случаях когда WinApi создает, скажем, форму через CreateProcess и передает какой-то абстрактный набор данных или команд. Тут можно и валидацию сделать, и много чего еще.
А как вам примерно вот такой концепт?

Hashtable opts = OptParser.Get({{"-f", "--foo", OptOptions::REQUIRED},… });
string val = opts[«f»];
А где здесь информация о типах параметров? Главная фишка ж в валидации и наглядности + отказ от строк — C# типизированный язык и надо пользоваться этим на 100%
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории