En C#, siempre he pensado que las variables no primitivas se pasaron por referencia y los valores primitivos pasaron por valor.Pasar objetos por referencia o valor en C#
De modo que al pasar a un método cualquier objeto no primitivo, cualquier cosa hecha al objeto en el método afectaría al objeto que se pasa. (C# 101 cosas)
Sin embargo, me he dado cuenta de que cuando paso un objeto System.Drawing.Image, que esto no parece ser el caso? Si paso un objeto system.drawing.image a otro método y cargo una imagen en ese objeto, entonces, ¿ese método sale del alcance y vuelvo al método de llamada, esa imagen no está cargada en el objeto original?
¿Por qué es esto?
Todas las variables se pasan por valor de forma predeterminada en C#. pasando * el valor de la referencia * en el caso de los tipos de referencia. –
Lo mismo: [why-is-list-when-passed-without-ref-to-a-function-acting-like-passed-with-ref] (http://stackoverflow.com/questions/7321602/why-is-list-when-passed-without-ref-to-a-function-acting-like-passed-with-ref) – nawfal