Комментарии 12
НЛО прилетело и опубликовало эту надпись здесь
Насколько я понял, у вас параметры приложения должны идти в строгом порядке? Т. е. program.exe /-flag «Max» уже не покатит?
Не прокатит, сделано это было специально,
во-первых, чтобы не путать пользователей и разработчиков — сначала идут все обязательные параметры в строго определенном порядке (как в методе), а потом все опциональные в любом порядке, т.е. если у нас два необязательных параметра, то вызовы program.exe «max» /flag1 /flag2 и program.exe «max» /flag2 /flag1 — равнозначны.
А во-вторых за основу был взят принцип который применяется в стандартных командах Windows. Теоретически можно переписать движок, чтобы он использовал другую нотацию.
во-первых, чтобы не путать пользователей и разработчиков — сначала идут все обязательные параметры в строго определенном порядке (как в методе), а потом все опциональные в любом порядке, т.е. если у нас два необязательных параметра, то вызовы program.exe «max» /flag1 /flag2 и program.exe «max» /flag2 /flag1 — равнозначны.
А во-вторых за основу был взят принцип который применяется в стандартных командах Windows. Теоретически можно переписать движок, чтобы он использовал другую нотацию.
Спасибо, очень удобно получилось — гораздо более читабельный код по сравнению с парсингом аргументов с помощью select(parameter){}.
Только один вопрос: запуск «myProgram.exe help subcommand» подразумевает обработку команды help отдельным [Action], или должен выдаваться Description для subcommand без лишних телодвижений с моей стороны?
Последнего пока добиться не удалось.
Только один вопрос: запуск «myProgram.exe help subcommand» подразумевает обработку команды help отдельным [Action], или должен выдаваться Description для subcommand без лишних телодвижений с моей стороны?
Последнего пока добиться не удалось.
Идея интересная, думаю можно развить до размера полноценного фреймворка который сможет, например, делать parameters-to-object mapping, вызывать делегаты, создавать типы через reflection и еще много всего. Штука эта мне кажется полезной, например, в тех случаях когда WinApi создает, скажем, форму через CreateProcess и передает какой-то абстрактный набор данных или команд. Тут можно и валидацию сделать, и много чего еще.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
NConsoler — парсинг аргументов консольного приложения