Junior — Middle
¿Puede explicar en qué se diferencian los tipos de datos de referencia de los tipos de valor en el lenguaje C#?
sobes.tech AI
Respuesta de la IA
En C#, los tipos de datos se dividen en tipos de valor (value types) y tipos de referencia (reference types).
- Tipos de valor almacenan los datos directamente. Al asignar o pasar a un método, se copia el valor. Ejemplos:
int,double,struct. - Tipos de referencia almacenan una referencia a un área de memoria donde se encuentran los datos. Al asignar, se copia la referencia, no los datos en sí. Ejemplos:
class,string, arreglos.
Ejemplo:
int a = 5;
int b = a; // b obtiene una copia del valor 5
b = 10; // a seguirá siendo 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 y p1 apuntan al mismo objeto
p2.Name = "Bob"; // ahora p1.Name también es "Bob"
De esta forma, los cambios en tipos de referencia a través de una variable se reflejan en todas las referencias, mientras que en los tipos de valor no.