ExpertiDict

C# · Avançado · Inglês · Técnico

ref return

/ɹɛf rɪˈtɝn/substantivo

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

Veja também

Todos os termos de C#