using System.CommandLine;
using System.CommandLine.Invocation;
public static void Main(string[] args)
args = new string[]{"--gar", "hello gar", "Foo", "hello bar"};
args = new string[]{"Foo", "hello bar", "--gar", "hello gar"};
var rootCommand = new RootCommand
rootCommand.Description = "I am root.";
rootCommand.Invoke(args);
private class FooCommand : Command
public FooCommand(): base("Foo", "Executes the foo command.")
Handler = CommandHandler.Create<string, string>((bar, gar) => doFoo(bar, gar));
var barArgument = new Argument<string>("bar", "The bar argument");
var garOption = new Option<string>("--gar", () => "default gar", "The gar option");
AddArgument(barArgument);
private void doFoo(string bar, string gar)
Console.WriteLine($"bar: {bar} gar: {gar}");