Hasta este punto, el programa de inventario únicamente mostraba un banner al ejecutarse y finalizaba inmediatamente. En esta clase se comienza a convertir en una aplicación interactiva, capaz de recibir comandos desde la terminal y leer información ingresada por el usuario.

Se introducen conceptos muy importantes para cualquier aplicación de consola: argumentos de línea de comandos, entrada y salida estándar (stdin/stdout) y códigos de salida (exit codes).

Argumentos de línea de comandos

Cuando ejecutamos un programa desde la terminal podemos enviar información adicional después del comando principal. Esa información recibe el nombre de argumentos de línea de comandos.

En .NET, cuando usamos:

dotnet run -- --help

el primer -- tiene una función especial: separa los argumentos de la CLI de .NET de los argumentos que recibirá nuestro programa.

Todo lo que aparece:

Este detalle es importante, ya que sin el doble guion .NET interpretaría esos argumentos como propios y no los enviaría a la aplicación.

El arreglo args

Los argumentos de línea de comandos (args) son los datos o comandos que un usuario le pasa a una aplicación al momento de ejecutarla desde la terminal. Permiten que el programa cambie su comportamiento sin necesidad de pedir información de forma interactiva.

El objetivo es que tu aplicación pueda recibir instrucciones desde la terminal antes de empezar a ejecutarse. En lugar de abrir el programa y luego preguntarle al usuario qué quiere hacer, el usuario puede indicárselo desde el mismo comando con el que inicia la aplicación. Eso es precisamente lo que hace tu proyecto con --help y --version.

Los argumentos llegan al programa mediante un arreglo llamado args.

Su tipo es:

string[] args

Cada palabra separada por espacios ocupa una posición del arreglo.

Por ejemplo:

dotnet run -- hola mundo

produce: