Recientemente he estado realizando una .DLL para acceso a Datos a una Base de Datos cualquiera. Esta .DLL tiene método como:
Código:
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.public bool SPLectura(string nombreProcedimiento, DataTable tbDatos) {} public bool SPLectura(string nombreProcedimiento, clsParametros parametrosValor, DataTable tbDatos){}
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.