FluentArgs(参见:https ://github.com/kutoga/FluentArgs )有一个选项来控制这种行为。它使用预定义的错误消息,但可以自定义(在 Github 页面上搜索RegisterParsingErrorPrinter )。您的代码看起来像(假设所有参数都是可选的):
using FluentArgs;
using System;
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
FluentArgsBuilder.New()
.DisallowUnusedArguments()
.Parameter("-a").IsOptional()
.Parameter("-b").IsOptional()
.Parameter("-c").IsOptional()
.Call(c => b => a =>
{
Console.WriteLine($"a={a ?? "null"}");
Console.WriteLine($"b={b ?? "null"}");
Console.WriteLine($"c={c ?? "null"}");
})
.Parse(args);
}
}
}
我假设a
,b
和c
are string
-arguments。如果它们是标志,则可以这样做:
using FluentArgs;
using System;
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
args = new[] { "-a", "hey", "du" };
FluentArgsBuilder.New()
.DisallowUnusedArguments()
.Flag("-a")
.Flag("-b")
.Flag("-c")
.Call(c => b => a =>
{
Console.WriteLine($"a={a}");
Console.WriteLine($"b={b}");
Console.WriteLine($"c={c}");
})
.Parse(args);
}
}
}