C# · Avançado · Inglês · Técnico
ref return
Recurso que faz um método devolver uma referência a uma variável existente, e não uma cópia. O chamador pode ler ou alterar o original por meio de um ref local.
Onde usar
Aparece em código de desempenho, como a indexação de Span<T> e coleções com structs grandes. Evita copiar structs e permite modificar um elemento do array no lugar.
Em código
int[] a = { 1, 2, 3 };
ref int segundo = ref Pegar(a, 1);
segundo = 99;
Console.WriteLine(a[1]); // 99
ref int Pegar(int[] v, int i) => ref v[i];Exemplos
The indexer uses a ref return to avoid copying.
O indexador usa ref return para evitar cópia.
With ref return you edit the array element in place.
Com ref return você edita o elemento do array no lugar.
Cuidado
Não devolva referência a uma variável local do método: o compilador recusa, pois ela deixaria de existir.
Sinônimos
retorno por referência