C# · Essencial · Inglês · Técnico
reference type
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); // 2Exemplos
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