A random argument value is passed in place of an optional argument
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Tái hiện vấn đề bằng lệnh C# được nêu trong báo cáo, sau đó lần theo cách một Argument tùy chọn bị bỏ qua được liên kết với handler và cách lấy giá trị mặc định của nó. Được xem là hoàn tất khi arg4 là null hoặc lời gọi tạo ra một ngoại lệ runtime rõ ràng, kèm theo một bài kiểm thử hồi quy bao quát trường hợp bỏ qua đối số cuối cùng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
This very simple command takes four arguments, the first three being mandatory.
When the last argument (arg4) is omitted, the handler receives the value of arg2 instead of null.
var root = new RootCommand();
var arg1 = new Argument<string>("arg1") { Arity = ArgumentArity.ExactlyOne };
var arg2 = new Argument<string>("arg2") { Arity = ArgumentArity.ExactlyOne };
var arg3 = new Argument<string>("arg3") { Arity = ArgumentArity.ExactlyOne };
var arg4 = new Argument<string>("arg4") { Arity = ArgumentArity.ZeroOrOne };
root.AddArgument(arg1);
root.AddArgument(arg2);
root.AddArgument(arg3);
root.AddArgument(arg4);
root.SetHandler((v1, v2, v3, v4) =>
{
Console.WriteLine($"arg1: {v1}\narg2: {v2}\narg3: {v3}\narg4: {v4}");
}, arg1, arg2, arg3, arg4);
root.Invoke(["one", "TWO", "three"]);
This prints:
arg1: one
arg2: TWO
arg3: three
arg4: TWO
Expected: arg4 = null. Or, if I misunderstood how to set up such a syntax, a runtime exception. But certainly not "TWO".
It's possible to work around this by adding an explicit default to arg4:
var arg4 = new Argument<string>("arg4", () => null) { Arity = ArgumentArity.ZeroOrOne };
Version: 2.0.0-beta4.22272.1
- Ngôn ngữ chính
- C#
- Star
- 3.7k
- Fork
- 434
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của dotnet/command-line-api
-
German localization is incompleteCó thể đã có người làm @b-v-d-e-v đã nhận 7 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
dotnet/command-line-api#2852 ·
-
Incomplete French (fr) translation: RequiredOptionWasNotProvided not translatedCó thể đã có người làm @JPBlanc đã nhận 104 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
dotnet/command-line-api#2822 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
dotnet/command-line-api#2792 · 2 bình luận · 15 reaction ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
dotnet/command-line-api#2704 ·
-
GetCompletions should check exit code of invoked applicationCó thể đã có người làm @baradgur đã nhận 1276 ngày trước. Đang mởArea-Completions bug help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
dotnet/command-line-api#2137 · 1 bình luận · 3 reaction ·
Tất cả issue của dotnet/command-line-api
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
stryker-mutator/stryker-net#3892 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
MobiFlight/MobiFlight-Connector#3419 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`Source` with an `avares://` URI and a `#fragment` throws instead of scrolling to the anchorĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Kryptos-FR/MarkView.Avalonia#105 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[辞書]Đang mở提案 辞書
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
microsoft/fluentui-blazor#5410 ·
Maintainer thường phản hồi trong vòng 1 ngày