На этот вопрос уже есть ответ здесь:
Я пытаюсь использовать класс OptionSet
следующим образом:
string resultsFileName = null;
bool isHelp = false;
var p = new OptionSet() {
{ "r=|resultsFile=", "The file with the results", v => { resultsFileName = v; } }
{ "h|help", "Show this help", v => { isHelp = (v != null); } },
};
try
{
p.Parse(args);
}
catch (OptionException e)
{
Console.WriteLine("Invalid arguments: " + e.Message);
ShowHelp(p);
return;
}
Таким образом, ожидается, что параметр resultsFile
будет обязательным (согласно документации: http://www.ndesk.org/doc/ndesk-options/NDesk.Options/OptionValueType.html ). Однако когда я запускаю программу как есть (т.е. без аргументов командной строки) исключение не создается. Пожалуйста, помогите.
Обновление: В отладчике похоже, что когда не указаны параметры командной строки, метод private void AssertValid (int index)
никогда не будет доступен для выбросить новое исключение OptionException
.