Sobes.tech
Junior — Middle

Quais são as diferenças entre as palavras-chave ref e out ao passar variáveis de referência em métodos?

sobes.tech IA

Resposta da IA

Em C#, as palavras-chave ref e out são usadas para passar parâmetros por referência, mas têm diferenças importantes:

  • ref exige que a variável seja inicializada antes de ser passada ao método. O método pode ler e modificar o valor.
  • out não exige que a variável seja inicializada previamente, mas o método deve atribuir um valor a ela antes de sair.

Exemplo:

void ExampleRef(ref int x) {
    x += 10; // pode ler e modificar
}

void ExampleOut(out int y) {
    y = 42; // obrigatório atribuir
}

int a = 5;
ExampleRef(ref a); // a deve estar inicializado

int b; // não inicializado
ExampleOut(out b); // o método atribui um valor a b

Assim, ref é usado quando se precisa passar e modificar um valor já existente, e out quando o método deve retornar múltiplos valores através dos parâmetros.