Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2008, 11:57
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
C# - Diferencia en pasar un parametro por ref o no.

Buenas tardes amigos !!!

Recientemente he estado realizando una .DLL para acceso a Datos a una Base de Datos cualquiera. Esta .DLL tiene método como:
Código:
public bool SPLectura(string nombreProcedimiento, DataTable tbDatos)
{}

public bool SPLectura(string nombreProcedimiento, clsParametros parametrosValor, DataTable tbDatos){}
Estos métodos me devuelven el objeto DataTable que he pasado con los datos rellenos. Muy bien, exactamente lo mismo que si delante de cada parámetro hubiera puesto "ref" delante.

La diferencia está en que si declaro estos métodos de mi clase con "ref" y llamo a estos métodos, si un DataTable es tipado me da un error de que no se puede convertir el DataTable tipado al tipo DataTable.

Entonces, ¿Por qué si paso un objeto con la palabra "ref" no funciona bien los parametros por referencia y si lo paso sin "ref" si funciona bien?, ¿Para que está la palabra clave "ref" si cuando declaro un método sin esta delante, también los objetos son pasados por referencia?

En fin, espero algún conocedor de .NET me pueda explicar estas dudas técnicas.

Un cordial saludo.
__________________
Charlie.