Precisa de um freelancer, códigos-fonte e exemplos completos? Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
Parte 2 :: Variáveis, Constantes
e Tipos de Dados :: Como usar
corretamente o método Main com ou sem argumentos
Todo programa C# tem um ponto de
entrada, que é um método Main
definido na classe principal, ou seja, a classe responsável
por controlar o fluxo de execução do programa.
Em todos os exemplos que escrevemos até este momento,
vimos o método Main com a seguinte assinatura:
static void Main()
{
// mais linhas de código aqui
}
A palavra static é um modificador que
pode ser usado com classes, métodos, variáveis,
etc, e será abordado mais adiante. Apenas para que você
não siga desinformado, saiba que um método definido
com este modificador pode ser acessado sem que uma instância
da classe na qual o método foi definido precise ser criada.
A palavra void é usada para indicar
que o método não retorna nenhum valor após
a sua execução. Como você aprenderá
mais adiante, métodos podem retornar todos os tipos de
dados que estudamos, incluindo referencias a tipos de dados
definidos pelo usuário. É comum em C# uma assinatura
do método Main que retorna um inteiro.
Veja um exemplo:
using
System;
class VoidPorInt
{
static int Main()
{
Console.WriteLine("Trocando
void por int");
return 0;
}
}
Este código está disponível no arquivo
VoidPorInt.cs.
Veja que agora o método Main retorna
um valor inteiro. Observe também o uso da instrução
return como ultima linha a ser executada. Em C e C++,
ao retornarmos o valor 0 para o sistema operacional estamos
informando-o que a execução e encerramento do
programa ocorreu sem maiores problemas. Experimente agora substituir
int por void novamente. Ao tentar
compilar o código você verá a seguinte mensagem
de erro:
VoidPorInt.cs(9,5):
error CS0127: Since 'VoidPorInt.Main()' returns void, a return
keyword must not be followed by an object expression
Esta mensagem nos diz que, uma vez que o metodo Main
está retornando void (nada), a palavra-chave
return não deve ser seguida por uma
expressão. Troque:
return
0;
por
return;
e compile o código novamente. Você verá
que agora a mensagem de erro não é exibida. Esta
experiência nos mostra que, quando um método define
void como seu tipo de retorno, o compilador
fará o possível para que esta regra seja obedecida.
É possível usar o método Main
para fornecer valores ao programa via linha de comando. Para
tanto você deve usar a seguinte assinatura:
static
void Main(string[] args)
{
// mais código aqui
}
Aqui nos temos um parâmetro para o método Main.
Este parâmetro é um array do tipo string. Arrays
são estruturas de dados que consistem em itens de dados
relacionados do mesmo tipo e indexados com valores inteiros
maiores ou igual a 0. Os valores fornecidos na linha de comando
são separados por espaços e acessados usando-se
args[0], args[1], args[2] e assim por diante. Veja um exemplo
onde o usuário informa seu primeiro nome e idade na linha
de comando do programa:
using
System;
class LinhaComando
{
static void Main(string[] args)
{
Console.WriteLine("Seu
primeiro nome é {0} e você
tem
{1} anos", args[0], args[1]);
}
}
Este código está disponível no arquivo
LinhaComando.cs.
Após sua compilação experimente executa-lo
usando os seguintes argumentos:
LinhaComando
Augusto 21
Você obterá o seguinte resultado:
Seu
nome é Augusto e você tem 21 anos
Experimente informar seu nome completo e a idade na linha
de comando. Poderia ser algo assim:
LinhaComando
Augusto Santos de Souza 21
Após a execução você concordará
comigo que o resultado não foi o que esperávamos.
Mas pode ser contornado. Basta informar o nome completo entre
aspas duplas. Assim:
LinhaComando
"Augusto Santos de Souza" 21
Arrays e as técnicas usadas para evitar erros em tempo
de execução, como aquele causado quando você
tentar executar estes exemplos recentes sem fornecer valores
na linha de comando, serão estudados mais adiante.
Todo o conteúdo deste site,
quando não devidamente observado, pertence a seus idealizadores
e não
poderá ser usado para outras finalidades senão estudo e
aprimoramento de técnicas de programação.
Certifique-se de ler asnotas legaisantes de proceder com
o acesso e leitura do
conteúdo disponibilizado nestas páginas.