Junior — Middle
Como é que os métodos de armazenamento de tipos de dados de referência e de valor diferem na memória em C#?
sobes.tech IA
Resposta da IA
Em C#, os tipos de valor, como int, struct, bool, são armazenados na pilha (stack) ou diretamente dentro do objeto se forem campos de um tipo de referência. Eles contêm os próprios dados.
Os tipos de referência, como classes (class), são armazenados no heap. A variável de tipo de referência contém não os dados em si, mas uma referência (ponteiro) para a área de memória no heap onde os dados do objeto são armazenados.
Exemplo:
int a = 5; // 'a' armazena o valor 5 na pilha
MyClass obj = new MyClass(); // 'obj' armazena uma referência a um objeto no heap
Assim, ao passar tipos de valor, o valor é copiado, e ao passar tipos de referência, a referência ao objeto é copiada.