Exercício - Utilizar parâmetros em métodos

Concluído

Ao criar métodos, frequentemente desejará fornecer algumas informações para que o método as utilize. As informações consumidas por um método são chamadas de parâmetro. Você pode fornecer quantos parâmetros forem necessários para realizar sua tarefa, ou nenhum.

Os termos «parâmetro» e «argumento» são frequentemente utilizados indistintamente. No entanto, «parâmetro» refere-se à variável na assinatura do método. O 'argumento' é o valor passado quando o método é chamado.

Adicionar parâmetros aos métodos

Os parâmetros em um método funcionam de forma semelhante às variáveis. Um parâmetro é definido especificando o tipo de dados seguido pelo nome do parâmetro. Os parâmetros são declarados na assinatura do método, e os valores para os parâmetros são fornecidos pelo chamador do método em vez de serem inicializados dentro do próprio método. Considere o seguinte código:

	CountTo(5);

	void CountTo(int max) 
	{
		for (int i = 0; i < max; i++)
		{
			Console.Write($"{i}, ");
		}
	}

Neste exemplo, o método CountTo aceita um parâmetro inteiro chamado max. O parâmetro é referenciado for no loop do método. Quando CountTo é chamado, o inteiro 5 é fornecido como um argumento.

Neste exercício, você aprenderá a criar e usar seus próprios parâmetros de método.

Prepare seu ambiente de codificação

Este módulo inclui atividades práticas que o guiam através do processo de criação e execução de código de demonstração. Você é incentivado a concluir essas atividades usando o Visual Studio Code como seu ambiente de desenvolvimento. Usar o Visual Studio Code para essas atividades ajudará você a se sentir mais confortável escrevendo e executando código em um ambiente de desenvolvedor usado por profissionais em todo o mundo.

  1. Abre Visual Studio Code.

    Você pode usar o menu Iniciar do Windows (ou recurso equivalente para outro sistema operacional) para abrir o Visual Studio Code.

  2. No menu Arquivo de código do Visual Studio, selecione Abrir pasta.

  3. Na caixa de diálogo Abrir pasta, navegue até a pasta Área de trabalho do Windows.

    Se você tiver um local de pasta diferente onde você mantém projetos de código, você pode usar esse local de pasta em vez disso. Para este treinamento, o importante é ter um local que seja fácil de localizar e lembrar.

  4. Na caixa de diálogo Abrir pasta , selecione Selecionar pasta.

    Se vir uma caixa de diálogo de segurança a perguntar se confia nos autores, selecione Sim.

  5. No menu Terminal de código do Visual Studio, selecione Novo terminal.

    Observe que um prompt de comando no painel Terminal exibe o caminho da pasta atual. Por exemplo:

    C:\Users\someuser\Desktop>
    

    Observação

    Se estiver trabalhando em seu próprio PC, em vez de em uma área restrita ou ambiente hospedado, e tiver concluído outros módulos do Microsoft Learn nesta série C#, talvez já tenha criado uma pasta de projeto para exemplos de código. Se esse for o caso, você pode pular a próxima etapa, que é usada para criar um aplicativo de console na pasta TestProject.

  6. No prompt de comando do Terminal, para criar um novo aplicativo de console em uma pasta especificada, digite dotnet new console -o ./CsharpProjects/TestProject e pressione Enter.

    Este comando .NET CLI usa um modelo de programa .NET para criar um novo projeto de aplicativo de console C# no local da pasta especificada. O comando cria as pastas CsharpProjects e TestProject para você e usa TestProject como o nome do .csproj arquivo.

  7. No painel do Explorador, expanda a pasta CsharpProjects.

    Você deve ver a pasta TestProject e dois arquivos, um arquivo de programa C# chamado Program.cs e um arquivo de projeto C# chamado TestProject.csproj.

  8. No painel EXPLORER, para visualizar seu arquivo de código no painel Editor, selecione Program.cs.

  9. Exclua as linhas de código existentes.

    Você usará este projeto de console C# para criar, compilar e executar exemplos de código durante este módulo.

  10. Feche o painel Terminal.

Criar um método com parâmetros

Nesta tarefa, você criará um método que ajusta as horas agendadas para um fuso horário GMT diferente. O método deve aceitar uma lista de horas, o fuso horário atual e o novo fuso horário. Vamos começar!

  1. Insira o seguinte código no Editor de Códigos do Visual Studio:

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. Para criar um método com parâmetros, insira o seguinte código em uma nova linha em branco:

    void DisplayAdjustedTimes(int[] times, int currentGMT, int newGMT) 
    {
    
    }
    

    Observe que os parâmetros são declarados de forma semelhante à maneira como você declara variáveis, usando o tipo de dados seguido pelo nome da variável. Você pode usar parâmetros de qualquer tipo de dados, como string, bool, int, arrays e muito mais! Vários parâmetros em um método são sempre separados por vírgula.

  3. Insira o seguinte código no DisplayAdjustedTimes método:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    

    Observe como você não precisa declarar as variáveis newGMT e currentGMT como elas já estão declaradas na assinatura do método. Você também não inicializa as variáveis, pois o método pressupõe que o chamador fornece esses argumentos com valores atribuídos.

    Nesta etapa, você cria int diff para armazenar a diferença horária e, em seguida, verifica se os valores GMT fornecidos estão entre -12 e 12. Usar Math.Abs dá-lhe o valor absoluto de um número, pelo que os valores GMT são inválidos se forem superiores a 12.

  4. Para calcular a diferença horária, atualize o DisplayAdjustedTimes método da seguinte forma:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    else if (newGMT <= 0 && currentGMT <= 0 || newGMT >= 0 && currentGMT >= 0) 
    {
        diff = 100 * (Math.Abs(newGMT) - Math.Abs(currentGMT));
    } 
    else 
    {
        diff = 100 * (Math.Abs(newGMT) + Math.Abs(currentGMT));
    }
    

    Neste código, você verifica se precisa adicionar ou subtrair os valores absolutos dos fusos horários GMT para obter a diferença em horas. Se os valores GMT partilham o mesmo sinal (ambos positivos ou ambos negativos), então a diferença de horas é igual à diferença entre os dois números. Se os valores GMT tiverem sinais opostos, então a diferença é igual à soma dos dois números. Como as horas são representadas em centenas, você multiplica o resultado por 100.

  5. Para exibir os resultados, digite o seguinte código no final do DisplayAdjustedTimes método:

    for (int i = 0; i < times.Length; i++) 
    {
        int newTime = (times[i] + diff) % 2400;
        Console.WriteLine($"{times[i]} -> {newTime}");
    }
    
  6. Para chamar seu método, digite o seguinte código após a declaração da int[] schedule variável:

    DisplayAdjustedTimes(schedule, 6, -6);
    

    Observe que variáveis e literais podem ser fornecidos como argumentos para um método. Usando parâmetros de entrada, o método não se restringe ao uso dos valores de variáveis globais.

Verifique o seu trabalho

Nesta tarefa, você executará seu aplicativo a partir do Terminal Integrado e verificará se seu código está funcionando corretamente. Vamos começar.

  1. Salve seu trabalho usando Ctrl + S ou usando o menu Arquivo de código do Visual Studio.

  2. Se necessário, abra o painel Terminal integrado do Visual Studio Code.

    No painel EXPLORER, para abrir um Terminal no local da pasta TestProject, clique com o botão direito do mouse em TestProject e selecione Abrir no Terminal Integrado.

  3. No prompt de comando do Terminal, digite dotnet run

  4. Verifique se o código produz a seguinte saída:

    800 -> 2000
    1200 -> 0
    1600 -> 400
    2000 -> 800
    

    Se o código apresentar resultados diferentes, terá de rever o código para encontrar o erro e fazer atualizações. Execute o código novamente para ver se você corrigiu o problema. Continue atualizando e executando seu código até que seu código produza os resultados esperados.

Recapitulação

Aqui está o que você aprendeu sobre parâmetros até agora:

  • As informações podem ser passadas para métodos na forma de parâmetros.
  • Os parâmetros são declarados na assinatura do método.
  • Vários parâmetros são separados por vírgulas.
  • Os métodos podem aceitar argumentos variáveis ou literais.