Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Básico sobre linha de comando e args
  2. Calculadora em linha de comando

Os tópicos listados acima para estudo são referentes a aplicações Console podendo não ser válidos para outro tipo de aplicação.

Em C# podemos manipular os dados informados por um usuário de nossos programas através de linhas de comando. Por exemplo, um programa para realizar operações aritméticas básicas pode receber argumentos em linha de comando abaixo:

Sintaxe
nome_programa[.exe] 1 2 +
Onde:
nome_programa : nome do arquivo executável.
1, 2 + : qualquer argumento passado pela linha de comando separados por espaço.

A passagem desses argumentos é feita por intermédio do parâmetro args na função principal Main. A linguagem C# não inclui o nome do programa como primeiro argumento da linha de comando como ocorre em C/C++.

Sintaxe
public static void Main(string[] args) { /*corpo*/}
Onde:
args : array/vetor de string contendo argumentos da linha de comando.

Como pode ter sido observado acima, a linguagem C#, diferente de linhagens como C e C++, não utiliza argc para armazenar a quantidade argumentos. Essa quantidade deve ser recuperada utilizando a propriedade Lenght de args.

Sintaxe
args.Length
Exemplo 1
using System;

public class Program
{
	public static void Main(string[] args) {

        Console.WriteLine("{0}",args.Length);
        
		foreach(string arg in args)
			Console.Write(arg);
	}
}
Entrada
1 2 +
Saída
3
12+

Para exemplificar melhor o uso de linha de comando na linguagem C#, vamos criar uma simples calculadora aritmética de inteiros.

A sintaxe será bem simples sendo dois argumentos representando dois números que queremos realizar uma operação e um último argumento que vai informar qual a operação queremos realizar.

Sintaxe
nome_programa operando1 operando2 operacao
Exemplos
nome_programa 4 2 +
nome_programa 4 2 x
nome_programa 4 2 /
nome_programa 4 2 -
Exemplo 2
using System;

class Program 
{
  public static void Main(string[] args) 
  {
    int operador1, operador2;
    string operacao;

    if (args.Length >= 3)
    {
       	operador1 = Convert.ToInt32(args[0]);
       	operador2 = Convert.ToInt32(args[1]);
       	operacao = args[2];
    
        Console.WriteLine("Operando 1: " + args[0]);
        Console.WriteLine("Operando 2: " + args[1]);
        Console.WriteLine("Operação: " + args[2]);
        
        Console.WriteLine("\nResultado:");
       	switch (operacao)
       	{
       	    case "+": Console.WriteLine(operador1 + operador2);    break;
       	    case "-": Console.WriteLine(operador1 - operador2);    break;
       	    case "x": Console.WriteLine(operador1 * operador2);    break;
       	    case "/": Console.WriteLine(operador1 / operador2);    break;
       	    default: Console.WriteLine("Operação não suportada."); break;
       	}
    }
  }
}
Entrada
nome_programa 1 2 + 
Saída
Operando 1: 1
Operando 2: 2
Operação: +

Resultado:
3

A Classe Convert foi usado para a conversão dos argumentos númericos armazenados como string na parâmetro *args. Outros métodos para manipulação de string podem ser conferidos em C++ Básico: Strings.

O tratamento de erro vistos em C# : Gerenciando Erros devem ser usados para tratar e exibir mensagens de erro para o usuário de forma amigável.

Os comandos de decisão foram visto em C# Básico: Comandos de Decisão e o comando de escolha switch foi visto em C# Básico: Comando de Escolha.

  1. 05/08/2025 - revisão 2 - Correções: pontuais, sintaxes; Adição de links internos
  2. 14/10/2024 - revisão 1 - Correção: Ex. 1, Ajustes pontuais
  3. 12/03/2024 - versão inicial