static async Task <int> Main(string[] args) { if (args.Length == 0) { args = new string[] { "--help" }; } else if (args.Length == 1 && args[0].Equals("example") == false) // support drag & drop { ToCodeVerb toCode = new ToCodeVerb(); toCode.inputPaths = args; toCode.fileName = Path.GetFileName(args[0]) + "_gen"; var result = await ToCodeVerb.Verb(toCode); return((int)result); } // var commandLineParser = new Parser(settings => settings.CaseSensitive = false); var commandLineParser = Parser.Default; var mainResult = await commandLineParser .ParseArguments <ToCodeVerb, ExampleVerb>(args) .MapResult( (ToCodeVerb toCode) => ToCodeVerb.Verb(toCode), (ExampleVerb example) => ExampleVerb.Verb(example), err => Task.FromResult(ErrorCode.NoVerb)); if (mainResult == ErrorCode.NoVerb) { Console.WriteLine($"wait input for exit.."); Console.ReadKey(); } return((int)mainResult); }