ExpertiDict

C# · Essencial · Inglês · Técnico

reference type

/ˈrɛfɚəns taɪp/substantivo

Tipo cuja variável guarda uma referência a um objeto no heap: class, interface, delegate, array e string. Atribuir copia só a referência, então variáveis podem apontar para o mesmo objeto.

Onde usar

É a causa de bugs de aliasing: alterar um objeto por uma variável muda o que a outra enxerga, e passar uma lista a um método permite que ele a modifique. Records e cópias defensivas ajudam a controlar isso.

Em código

var a = new List<int> { 1 };
var b = a;          // mesma lista
b.Add(2);
Console.WriteLine(a.Count); // 2

Exemplos

Both variables point to the same object; it's a reference type.

As duas variáveis apontam para o mesmo objeto; é um reference type.

Passing a reference type doesn't copy the object.

Passar um reference type não copia o objeto.

Cuidado

Não confunda passar a referência por valor (o padrão) com passar por ref: reatribuir o parâmetro dentro do método não muda a variável do chamador.

Sinônimos

tipo por referência

Antônimos

value type

Veja também

Todos os termos de C#