Parâmetros e retorno de métodos

Parâmetros e retorno são conceitos fundamentais para métodos em C#. Eles definem como informações são recebidas e devolvidas por uma função.

Parâmetros de Métodos

Parâmetros são valores recebidos pelo método para que ele possa executar a sua tarefa. Em C#, existem diferentes formas de passar parâmetros:

  • Por valor (default): O método recebe uma cópia do valor. Alterações não afetam o valor original.
  • Por referência (ref): O método pode alterar o valor original da variável.
  • Saída (out): O método deve atribuir um valor ao parâmetro antes de retornar.
  • Somente leitura (in): O método recebe uma referência de leitura, não podendo alterar o valor.
  • Opcionais: Parâmetros com valor padrão, não precisam ser informados na chamada.
  • Nomeados: Permitem passar argumentos fora da ordem, especificando o nome do parâmetro.

Exemplos

Por valor (padrão):

void Incrementar(int x) {
x++;
}

Chamada:

int valor = 10;
Incrementar(valor); // valor permanece 10

Por referência (ref):

void Incrementar(ref int x) {
x++;
}

Chamada:

int valor = 10;
Incrementar(ref valor); // valor agora é 11

Parâmetro de saída (out):

void ObterValores(out int a, out int b) {
a = 1;
b = 2;
}

Chamada:

int x, y;
ObterValores(out x, out y); // x = 1, y = 2

Parâmetro opcional:

void Saudacao(string nome = "Visitante") {
Console.WriteLine("Olá, " + nome);
}

Chamada:

Saudacao(); // Olá, Visitante
Saudacao("Maria"); // Olá, Maria

Parâmetro nomeado:

void ExibirDados(string nome, int idade) {
Console.WriteLine($"{nome}, {idade}");
}

Chamada:

ExibirDados(idade: 30, nome: "Ana"); // Ana, 30

Retorno de Métodos

O retorno é o valor que o método devolve para quem o chamou. O tipo de retorno é definido na declaração do método.

Exemplo:

int Somar(int a, int b) {
return a + b;
}

Chamada:

int resultado = Somar(3, 4); // resultado = 7

  • Se o método não retorna valor, deve usar void como tipo de retorno.

Resumo

  • Parâmetros podem ser passados por valor, referência, saída, somente leitura, opcionais ou nomeados.
  • O retorno do método é definido pelo tipo antes do nome do método.
  • Parâmetros opcionais devem ser declarados após os obrigatórios.
  • Parâmetros nomeados aumentam a clareza e flexibilidade da chamada.