C# Academy · Les

CLI-gebruiksvriendelijkheid

Bouw gebruiksvriendelijke command-linetools: duidelijke help, korte flags, exitcodes, stdout versus stderr, eenvoudige parsing en basisuitvoer voor verbosity.

Les 3 van 38 stappen

CLI-gebruiksvriendelijkheid is een gratis C# Academy-les op CoddyKit. Dit is les 3 van 3. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject C# Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C# Academy bevat in totaal 3 lessen.

Basis van gebruiksvriendelijke CLI's

Doelen:

  • Toon hulp met -h/--help
  • Gebruik duidelijke opties (-i, -o, --verbose)
  • Retourneer 0 bij succes en een niet-nulwaarde bij een fout
  • Stuur resultaten naar stdout en diagnostische meldingen naar stderr

Gebruik en hulp

Voeg een korte sectie met gebruiksinstructies toe en accepteer zowel korte als lange opties; toon deze sectie wanneer invoer ontbreekt.

using System;

// A tiny CLI that prints help if no args or -h/--help is passed.
public class Program
{
  static void PrintUsage()
  {
    Console.WriteLine("usage: tool -i <input> [-o <output>] [--verbose]");
    Console.WriteLine("options:");
    Console.WriteLine("  -i, --input     input file path (required)");
    Console.WriteLine("  -o, --output    output file path (optional)");
    Console.WriteLine("  -h, --help      show help");
    Console.WriteLine("      --verbose   print extra diagnostics to stderr");
  }

  public static void Main(string[] args)
  {
    if (args.Length == 0 || args[0] == "-h" || args[0] == "--help")
    {
      PrintUsage();
      Environment.ExitCode = 0;
      return;
    }

    Console.WriteLine("OK: arguments received"); // placeholder success
  }
}

Opties en afsluitcodes

Retourneer een niet-nulwaarde bij ongeldige opties; houd meldingen kort en specifiek. Druk succes af naar stdout.

using System;

// Minimal manual parsing for beginners (no external libs).
public class Program
{
  static void Error(string msg)
  {
    Console.Error.WriteLine("error: " + msg);
    Environment.ExitCode = 1; // non-zero means failure
  }

  public static void Main(string[] args)
  {
    string input = null;
    string output = null;

    for (int i = 0; i < args.Length; i++)
    {
      string a = args[i];
      if (a == "-i" || a == "--input")
      {
        if (i + 1 >= args.Length) { Error("missing value for " + a); return; }
        input = args[++i];
      }
      else if (a == "-o" || a == "--output")
      {
        if (i + 1 >= args.Length) { Error("missing value for " + a); return; }
        output = args[++i];
      }
      else if (a == "-h" || a == "--help")
      {
        Console.WriteLine("usage: tool -i <input> [-o <output>]");
        return;
      }
      else
      {
        Error("unknown option: " + a);
        return;
      }
    }

    if (input == null) { Error("input is required (-i)"); return; }

    // Success path: write result to stdout
    Console.WriteLine("Processed " + input + (output == null ? "" : (" -> " + output)));
    Environment.ExitCode = 0;
  }
}

Stdout versus stderr

Plaats resultaten op stdout (geschikt voor doorsturen via een pijplijn) en diagnostische meldingen op stderr. Voeg een eenvoudige optie --verbose toe.

using System;

// Show separation of streams: stdout (results) vs stderr (diagnostics).
public class Program
{
  public static void Main(string[] args)
  {
    bool verbose = false;
    for (int i = 0; i < args.Length; i++) if (args[i] == "--verbose") verbose = true;

    if (verbose) Console.Error.WriteLine("info: starting work");
    // pretend to compute a number
    int result = 42;
    // Result goes to stdout so it can be piped:  tool ... > out.txt
    Console.WriteLine(result);

    if (verbose) Console.Error.WriteLine("info: finished work");
    Environment.ExitCode = 0;
  }
}

Conventies en afwerking

  • Accepteer zowel korte als lange opties (-h/--help)
  • Gebruik duidelijke foutmeldingen (wat is er mis + hoe je het oplost)
  • Houd de standaarduitvoer minimaal; voeg --verbose toe voor details
  • Gebruik consistente afsluitcodes (0 succes, 1 ongeldige argumenten, 2 I/O-fout)

Rooktests en documentatie

  • Probeer omleiding: command > out.txt en command 2> err.txt
  • Test foutpaden: ontbrekend bestand, ongeldige argumenten
  • Houd de gebruikstekst op mobiele apparaten onder ongeveer 5 regels
  • Documenteer voorbeelden die gemakkelijk te kopiëren en plakken zijn

Streams en afsluitcodes

Korte controle: welke werkwijze verbetert de bruikbaarheid van CLI's en het doorgeven via shellpijplijnen?

Samenvatting

Samenvatting: hulp bij -h/--help, duidelijke opties, juiste afsluitcodes en het scheiden van stdout/stderr maken je hulpprogramma's geschikt voor scripts en voorspelbaar.

Gratis beginnen

Leer C# met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
93
Lessen
346

Veelgestelde vragen

Is de les “CLI-gebruiksvriendelijkheid” gratis?

Ja — de volledige tekst van “CLI-gebruiksvriendelijkheid” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus C# Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus C# Academy bevat in totaal 3 lessen.

Wat leer ik in “CLI-gebruiksvriendelijkheid”?

Bouw gebruiksvriendelijke command-linetools: duidelijke help, korte flags, exitcodes, stdout versus stderr, eenvoudige parsing en basisuitvoer voor verbosity. Je oefent met C# Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met C# Academy te beginnen?

Ervaring vooraf is niet nodig. C# Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 3.

Hoe lang duurt de les “CLI-gebruiksvriendelijkheid”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over C# Academy?

Ja. Elke les over C# Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. C#-scripting (dotnet script), snippets en REPL
  2. De basis van interop (P/Invoke) in vogelvlucht
  3. CLI-gebruiksvriendelijkheid
← Terug naar C# Academy