Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Sobre pasar por referencia en c#

Iniciado por Diferencial, 12 de Abril de 2007, 02:31:45 PM

« anterior - próximo »

Diferencial

Hola a todos,
Me ha surgido esta duda se supone que todos los datos hasta los primitivos en c# son objetos, como puede ser que si quiero cambiar el contenido de una variable de tipo string dentro de un metodo, tengo que pasarla por referencia?
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

Vicente

Los strings son inmutables por diseño: es una clase con una cadena de caracteres dentro y tu no puedes tocarla.

Los ints y tal son clases que heredan de System.ValueType, que son clases que se crean en la pila en vez de en el heap (por eso no se pueden modificar).

Un saludo!

Vicente

Diferencial

PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

victorpatrick

¡Hola!

En C#, todos los tipos de datos son tipos de referencia o tipos de valor. Los tipos de referencia almacenan una referencia a un objeto en la memoria, mientras que los tipos de valor almacenan directamente el valor en su ubicación de memoria asignada.

En el caso de los primitivos como int, float, double, char, etc., son tipos de valor. Cuando pasas un tipo de valor a un método, se pasa por valor de forma predeterminada, lo que significa que se crea una copia del valor y se trabaja con esa copia dentro del método. Cualquier cambio que hagas dentro del método no afectará a la variable original fuera del método.
pge outage map

shynissan

De forma predeterminada, un tipo de valor se pasa por valor cuando se pasa a un método; esto significa que el valor se copia y se utiliza dentro del método. La variable original fuera del método no se verá afectada por ninguna modificación que realice dentro del método.
happy wheels






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.