.net 5: Система.Командная строка: Аргумент, используемый в качестве аргумента опции

#c# #.net-core #system.commandline

Вопрос:

Когда параметр и аргумент определены, но для данного аргумента задано только значение, это значение также используется для параметра. Пример:

 using System;
using System.CommandLine;
using System.CommandLine.Invocation;

class Program
{
    static int Main(string[] args)
    {
        var rootCommand = new RootCommand
        {
            new Option<string>(alias: "--abc" ),
            new Argument<string>(name: "abcd"),
        };
        rootCommand.Handler = CommandHandler.Create<string, string>(command);
        return rootCommand.Invoke(args);
    }

    static void command(string abc, string abcd)
    {
        Console.WriteLine("option = "{0}"", abc);
        Console.WriteLine("argument = "{0}"", abcd);
    }
}
 

При запуске с dotnet run -- foo выводом

 option = "foo"
argument = "foo"
 

Но никакого значения опциону --abc не придавалось.
Это ошибка или неправильное использование библиотеки?