commandlineparser / commandlineparser/commandline

Default verb treated as a value.

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

描述

This was seen on version 2.8.0 targeting .NET Core 3.1 / 5.

Minimum code sample:
```
void Main()
{
var parser = new Parser();
var result = parser.ParseArguments(new[] { "copy", @"A:\", @"C:\", });
result
.WithParsed(a =>
{
Console.WriteLine(a.SourcePath);
Console.WriteLine(a.DestinationPath);
});
}

[Verb("copy", isDefault: true)]
class CopyArguments
{
[Value(0, MetaName = "source", Required = true)]
public string? SourcePath { get; set; }

[Value(1, MetaName = "destination", Required = true)]
public string? DestinationPath { get; set; }
}
````

This prints "copy" for `SourcePath` and "A:\\" for `DestinationPath`.

At this point in development I only have one verb (more verbs are planned), and that verb is/will be the default one.

貢獻指南

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

研究方向

先使用所示的 [Verb] 和 [Value] 屬性,透過 Parser.ParseArguments 重現範例。追蹤預設 verb 在指派位置值之前的處理方式,然後新增或更新回歸測試,證明從引數中省略預設 verb 時,SourcePath 會接收 A:\\,DestinationPath 會接收 C:\\。

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

評估

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

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

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