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.

forgetmeet

Hi there!

In C#, data types are either reference types or value types. Reference types store a reference to the actual data in memory, whereas value types store the actual data directly in their own memory space.

Take primitives like int, float, double, and char for instance—they're value types. When you pass a value type to a method, it gets passed by value. This means the method works with a copy of the original value. So, any changes you make to the parameter inside the method won't affect the original variable outside the method.

Hope that makes things clearer!






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.