Sobes.tech
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.