> Manuales > Manual sobre la plataforma .Net

Podemos almacenar variables por valor y por referencia. Explicamos lo que significa cada uno y las maneras que .NET realiza este almacenamiento.

Tipos por valor: los tipos por valor almacenan datos a los que se puede acceder de forma directa, a su vez dentro de esta categoría encontramos mas subcategorías como los tipos nativos de .NET, los tipos de datos creados por el programador y los enumerados. Los tipos por valor no pueden tener valores nulos.

Tipos por referencia: Los tipos creados por referencia almacenan la dirección de memoria en la que se encuentra un dato determinado de manera que usaremos esa dirección de memoria para acceder de forma indirecta al dato. Los tipos por referencia se dividen en varios subgrupos como son las clases propias de la plataforma, interfaces, clases creadas por el programador, etc.


Cuando ejecutamos una aplicación es necesario que los datos se sitúen en la memoria del ordenador, la cual esta divida en dos partes, una llamada Stack, de pequeño tamaño pero de un acceso muy rápido y otra llamada Heap que cuenta con un mayor tamaño pero con una velocidad de acceso inferior.

Cuando creamos tipos por valor, el valor de la variable de este tipo se almacena en el Stack, si asignamos una variable de estas características a otra, se crea una copia en el Stack. Al destruir un tipo por valor, se destruye también el valor que se guardo en el Stack.
Cuando creamos un tipo por referencia, en realidad lo que guardamos en el Heap es una dirección de memoria que apunta a un valor, pero no al valor en si mismo. Si asignamos una variable que contiene un tipo por referencia a otra variable, se dice que ambas se refieren al mismo valor. Los tipos por referencia si pueden contener valores nulos.

Francisco Recio y David Provencio

Manual