• Viernes 1 de Noviembre de 2024, 13:32

Autor Tema:  Se Puede Pasar Un Objeto Por Valor?  (Leído 1851 veces)

sakuragi

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.sakux.com
Se Puede Pasar Un Objeto Por Valor?
« en: Martes 17 de Enero de 2006, 04:49 »
0
hola que tal.

se puede pasar un objeto por valor de alguna forma?

saludos

gracias

 :comp:
www.sakux.com

 No contamines. Uso de Energias Limpias y Reutilizables.

"Solamente cuando el último árbol este muerto, el último río esté envenenado y el último pez esté atrapado, entenderemos que no se puede comer dinero"

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Se Puede Pasar Un Objeto Por Valor?
« Respuesta #1 en: Martes 17 de Enero de 2006, 13:26 »
0
no que yo sepa...
para que?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Se Puede Pasar Un Objeto Por Valor?
« Respuesta #2 en: Martes 17 de Enero de 2006, 14:42 »
0
Hola,

Segun lo que he encontrado en la biblioteca de MSDN, por defecto los parametros de un método se pasan por valor, es decir que el método no cambia el valor original del parametro pasado:

Citar
If a parameter is declared for a method without ref or out, the parameter can have a value associated with it. That value can be changed in the method, but the changed value will not be retained when control passes back to the calling procedure. By using a method parameter keyword, you can change this behavior.


Fuente

Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Se Puede Pasar Un Objeto Por Valor?
« Respuesta #3 en: Martes 17 de Enero de 2006, 15:21 »
0
cuando se habla de pasar un objeto por valor se habla de que el procedimeinto crea un objeto nuevo con base al parametro.

En .NET los objetos que son instancias de clase ( la gran mayoria, los que quedan en el heap) se pasan siempre por referencia, mientras que objetos creados a partir de estructs o de tipos de dato 'nativos' por defecto se pasan por valor  y es opcional pasarlos por referencia.

Cuando se pasa un parametro por referencia lo que se hace 'tras vanbalinas' es pasar un apuntador al objeto, asi pues cuando se pasan objetos instancia de clase como parametro, lo que se esta pasando es realmente un apuntador a esa seccion de memoria en el heap y cuando se pasan estructuras o tipos nativos se pasa un apuntador a la seccion de memoria creada en el stack. Cuando se pasa un parameto que es de tipo struct o tipo nativo se crea una copia del espacio de memoria reservado en el stack y esta es la que se manipula desde el procedimiento.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Se Puede Pasar Un Objeto Por Valor?
« Respuesta #4 en: Miércoles 18 de Enero de 2006, 08:42 »
0
Gracias por la aclaración Juank.

Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

sakuragi

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.sakux.com
Re: Se Puede Pasar Un Objeto Por Valor?
« Respuesta #5 en: Miércoles 18 de Enero de 2006, 09:26 »
0
gracias por la aclaracion.

y esto como puedo comprobarlo?

saludos
www.sakux.com

 No contamines. Uso de Energias Limpias y Reutilizables.

"Solamente cuando el último árbol este muerto, el último río esté envenenado y el último pez esté atrapado, entenderemos que no se puede comer dinero"

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Se Puede Pasar Un Objeto Por Valor?
« Respuesta #6 en: Miércoles 18 de Enero de 2006, 14:36 »
0
si por ejemplo envias un objeto como parametro por referencia y dentro del procedimiento le modificas alguno de los valores al objeto recibido como parametro , al salir del procedimiento el objeto tendra los valores cambiados ya que se modifico directamente sobre el, por el contrario si lo pasas por valor al salir del procedimiento no se veran los cambios en el objeto original.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io