Tôi cố gắng để sử dụng các lớp OptionSet
theo cách sau:NDesk.Options: làm thế nào để đăng ký các thông số cần thiết một cách chính xác?
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;
}
Như vậy, resultsFile
lựa chọn dự kiến sẽ được cần (theo tài liệu: http://www.ndesk.org/doc/ndesk-options/NDesk.Options/OptionValueType.html). Tuy nhiên, khi tôi chạy chương trình như (tức là không có đối số dòng lệnh) ngoại lệ không được ném. Xin vui lòng giúp đỡ.
Cập nhật: Dường như trong trình gỡ lỗi như khi không có tùy chọn dòng lệnh nào được cung cấp, phương pháp private void AssertValid (int index)
sẽ không bao giờ đạt đến throw new OptionException
.
cảm ơn cho câu trả lời nhanh chóng! (một chút băn khoăn rằng chức năng này không được hỗ trợ, mặc dù, vì nó sẽ góp phần vào sự mạnh mẽ của các xác nhận đối số dòng lệnh). – BreakPhreak