Skip to content

Métodos no C#

Um método em C# é um bloco de código que executa uma tarefa específica.

Ele pode receber parâmetros, retornar valores e ser chamado por outras partes do programa.

Métodos são definidos dentro de classes ou structs e podem ser estáticos, de instância, genéricos, assíncronos, entre outros.

Documentação Oficial: Visão geral dos métodos

São métodos que operam sobre uma instância da classe. Requerem que um objeto seja criado para serem chamados.

public class Calculadora {
public int Somar(int a, int b) {
return a + b;
}
}
var calc = new Calculadora();
int resultado = calc.Somar(2, 3); // Output: 5

Documentação oficial: Classes Estáticas e Membros estáticos

Pertencem à classe e não à instância. São chamados diretamente pela classe.

public class Util {
public static int Dobrar(int x) {
return x * 2;
}
}
int resultado = Util.Dobrar(4); // Output: 8

Documentação Oficial: Criar método que retornam valores

Retornam um valor após a execução. O tipo de retorno é especificado na assinatura.

public string Saudacao(string nome) {
return $"Olá, {nome}!";
}

Documentação Oficial: Argumentos opcionais

Permitem definir valores padrão para parâmetros.

public void MostrarMensagem(string msg = "Mensagem padrão") {
Console.WriteLine(msg);
}
MostrarMensagem(); // Output: Mensagem padrão
MostrarMensagem("Olá!"); // Output: Olá!

Documentação Oficial: Métodos com parâmetros

Permitem passar um número variável de argumentos como array.

public int Somar(params int[] numeros) {
return numeros.Sum();
}
Somar(1, 2, 3, 4); // Output: 10

Documentação Oficial: ref e out

Permitem passar variáveis por referência.

ref: variável deve ser inicializada antes.

out: variável será inicializada dentro do método.

public void Dobrar(ref int valor) {
valor *= 2;
}
public void GerarNumero(out int numero) {
numero = 42;
}

Documentação Oficial: Método genérico

Permite trabalhar com tipos parametrizados.

public T RetornarValor<T>(T valor) {
return valor;
}
int x = RetornarValor<int>(10); // Output: 10
string s = RetornarValor<string>("teste"); // Output: teste

Documentação Oficial: Método Assíncrono

Executa operações assíncronas com await.

public async Task<string> BuscarDadosAsync() {
await Task.Delay(1000);
return "Dados recebidos";
}

Documentação Oficial: Expressões Lambda

Funções inline que podem ser atribuídas a delegates ou usadas em LINQ.

Func<int, int> quadrado = x => x * x;
Console.WriteLine(quadrado(5)); // Output: 25

Documentação Oficial: Métodos de Extensão

Permite adicionar métodos a tipos existentes sem modificar o código original.

public static class Extensoes {
public static int Dobrar(this int valor) {
return valor * 2;
}
}
int resultado = 5.Dobrar(); // Output: 10