piątek, 6 lutego 2026

System.CommandLine

System.CommandLine to oficjalna biblioteka w .NET która rozszerza tradycyjne podejście do aplikacji konsolowych. 


Używając tego namespece z automatu dostajemy:

- parsowanie argumentów wejściowych, 

- walidację parametrów, 

- automatyczne generowanie pomocy 

- automatyczne generowanie podpowiedzi.


System.CommandLine to nowsze podejście dla tradycyjnych args[]. Jest to oficjalna paczka od Microsoft, więc można jej używać za darmo w każdy możliwy sposób.


Przykład kodu wygenerowany przez Claude 4.5

using System.CommandLine;

var nameOption = new Option<string>(
    name: "--name",
    description: "Nazwa użytkownika",
    getDefaultValue: () => "World");

var rootCommand = new RootCommand("Przykładowa aplikacja CLI");
rootCommand.AddOption(nameOption);

rootCommand.SetHandler((string name) =>
{
    Console.WriteLine($"Hello, {name}!");
}, nameOption);

return await rootCommand.InvokeAsync(args);

Użycie w konsoli:

myapp --name John 

# Output: Hello, John! 

myapp --help 

# Wyświetli automatycznie wygenerowaną pomoc


Alternatywy dla aplikacji konsolowych:

ConsoleAppFramework napisany przez Yoshifumi Kawai.