CLR: .Net / Mono / Boo / Otros CLR > C#

 Duda respecto a la gestión de la memoria.

(1/1)

DanteInfernum666:
¿Cambia en algo la forma en que se gestiona la memoria si inicializo los atributos de una clase inmediatemente después de haberlos declarado de que si los inicializo mediante un constructor?

Ejemplo:

--- Código: ---class Class
    {
        int[] arreglo = new int[500];

        public Class()
        {
 
        }
    }
--- Fin del código ---

Lo mismo, pero inicializando el atributo a través del constructor por defecto:

--- Código: ---class Class
    {
        int[] arreglo;

        public Class()
        {
            arreglo = new int[500];
        }
    }
--- Fin del código ---

¿Alguna manera es más eficiente que la otra?

DanteInfernum666:
Estuve investigando un poco, y ya estoy en condiciones de responderme a mí mismo. Pongo acá lo que encontré, capaz que a alguien le sirve...

El compilador primero inicializa los atributos, y luego pasa a los constructores. Por lo que si el valor del atributo en el constructor va a ser el mismo, es conveniente inicializarlo en la misma línea en la que declaro la variable.

Inicializar un atributo en un constructor es inicializarlo dos veces, ya que el compilador primero lo inicializa en su valor por defecto o a un valor dado, y luego el constructor sobreescribe este valor.

Navegación

[0] Índice de Mensajes

Ir a la versión completa