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:
refexige que a variável seja inicializada antes de ser passada ao método. O método pode ler e modificar o valor.outnã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.