Console arguments

A console component to let user write text.

In Trivial.CommandLine namespace of Trivial.dll library.


The command arguments is an array of string. You can parse it to a program readable object with structured information.

void Main(string[] args)
    // Parse arguments from a string array.
    var arguments = new Arguments(args);

    // You can get the value of each parameter by key (case-insensitive).
    Console.WriteLine("{0} {1}", arguments["say"], arguments["name"]);

    // Parse arguments from a string.
    var str = Console.ReadLine();
    arguments = new Arguments(str);

    // You can get the value by index.
    Console.WriteLine("{0} {1}", arguments[1], arguments[0]);


> a.exe --name Kingcean Tuan --say Hello
Hello Kingcean Tuan
> hijklmn abcdefg
abcdefg hijklmn


If your application contains a set of functionality, you may need verbs to help you to build a more flexible console application. Each verb can has its own business logic. The arguments will be filled into the property with attribute ArgumentAttribute.

class FirstVerb : Verb
    public string Name { get; set; }

    public bool HasName => HasParameter("name");

    public override string Description => "Test 1";

    public override void Process()
        Console.WriteLine("This is the verb handler 1.");
        Console.WriteLine("Name is {0}.", Name);
        Console.WriteLine("Name is {0}.", Arguments["name"]);

And you can also define a verb handler with async process method.

class SecondVerb : AsyncVerb
    public override string Description => "Test 2";

    public override async Task Process()
        Console.WriteLine("This is the verb handler 2. Step 1.");
        await Task.Run(() => {
            Console.WriteLine("This is the verb handler 2. Step 2.");

Then you can use dispatcher to dispatch the correct verb handler to process.

void Main(string[] args)
    var dispatcher = new Dispatcher();



> a.exe one --name Test
This is the verb handler 1.
Name is Test.
Name is Test.
> a.exe two
This is the verb handler 2. Step 1.
This is the verb handler 2. Step 2.