Junior — Middle
Pode explicar a diferença entre os tipos de referência e os tipos de valor na linguagem C#?
sobes.tech IA
Resposta da IA
No 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 é copiado. Exemplos:
int,double,struct. - Tipos de referência armazenam uma referência à área de memória onde os dados estão. Ao atribuir, apenas a referência é copiada, não os dados em si. Exemplos:
class,string, arrays.
Exemplo:
int a = 5;
int b = a; // b recebe uma cópia do valor 5
b = 10; // a permanece 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 e p1 referenciam o mesmo objeto
p2.Name = "Bob"; // agora p1.Name também é "Bob"
Dessa forma, as alterações em tipos de referência através de uma variável refletem-se em todas as referências, enquanto nos tipos de valor, não.