Junior — Middle
Qual é a diferença entre tipos de dados de referência e tipos de valor na programação?
sobes.tech IA
Resposta da IA
Em C#, os tipos de dados dividem-se em tipos de valor (value types) e tipos de referência (reference types).
Tipos de valor armazenam os dados diretamente. Ao atribuir ou passar para um método, o valor em si é copiado. Exemplos: int, double, struct, bool.
Tipos de referência armazenam uma referência para uma área de memória onde os dados estão. Ao atribuir, a referência é copiada, não os dados em si, portanto várias variáveis podem apontar para o mesmo objeto. Exemplos: class, string, array.
Exemplo:
int a = 5;
int b = a; // copia o valor 5
b = 10;
// a ainda é 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // copia a referência
p2.Name = "Bob";
// p1.Name agora é "Bob"
Assim, a principal diferença é a forma de armazenamento e cópia dos dados: tipos de valor copiam os valores, tipos de referência copiam referências aos objetos.