commandlineparser / commandlineparser/commandline

Option without value should throw an error.

未關閉
#861 3 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
C#
星號
4.8k
分支
478
PR 合併指標
30 天內沒有已合併 PR

描述

If I have a string option and it is called without a value, no error is thrown. This is what I would expect.

```csharp
using CommandLine;

namespace cli
{
public class Program
{
static void Main(string[] args)
{
CommandLine.Parser.Default.ParseArguments(args)
.WithParsed(options => RunOptions(options))
.WithNotParsed(error => ErrorAndExit(error));
}

static void RunOptions(Options options)
{

}

static void ErrorAndExit(IEnumerable error)
{ }
}

public class Options
{
[Option("value", Required = false, HelpText = "A value.")]
public string Value { get; set; }
}
}
```
If i call this command line i get no error.

```bash
cli --value # should throw an error
cli --value blah # ok, this is what i want
```

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

使用 Options 類別和 --value 範例,透過 CommandLine.Parser.Default.ParseArguments 重現該行為。追蹤選項值解析的進入點,並找到現有的 parser 測試;完成條件是:缺少 string 值時,--value 呼叫 WithNotParsed,而 --value blah 仍能成功解析。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
csharp
領域
cli
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。