Serializzazione di una classe (C#)

di il
3 risposte

Serializzazione di una classe (C#)

Mettiamo di avere la classe A che contiene soltanto variabili (di tipi primitivi, quindi nello stack). Poi abbiamo la classe B che contiene le stesse variabili di A ma anche molte funzioni. La classe A serializzata occupa lo stesso spazio in memoria della classe B serializzata? Nella serializzazione delle classi rimangono soltanto i valori delle variabili o anche il codice e le funzioni?
Dovrei serializzare una classe con parecchie funzioni e codice (ma ovviamente mi servono soltanto i valori delle variaibili), vorrei sapere se mi conviene creare una nuova classe che contenga soltanto le variabili della prima classe per risparmiare spazio in memoria.

3 Risposte

  • Re: Serializzazione di una classe (C#)

    La serializzazione serializza solo i campi data, non il codice.

    Le due classi, in memoria, avranno la stessa dimensione.
    Le due classi, serializzate, richiederanno lo stesso numero di byte.
  • Re: Serializzazione di una classe (C#)

    Grazie! Un'ultima domanda.

    Ho la classe A con all'interno una variabile che referenzia la classe B.
    Ho anche la classe C con una variabile che referenzia la classe B.
    Quindi la situazione è questa:
    A --> B
    C --> B

    Serializzo A e C. Se entrambe le classi (A e C) referenziano la stessa istanza di B (quindi A e C "puntano" alla stessa istanza di B in memoria) cosa succede nella serializzazione? Quell'istanza (referenziata da A e C) sarà comunque duplicata (per ogni classe che la referenzia) oppure "capisce" che si tratta dello stesso oggetto?
  • Re: Serializzazione di una classe (C#)

    Un riferimento è come un puntatore. Hai una sola istanza e quindi un solo oggetto.
Devi accedere o registrarti per scrivere nel forum
3 risposte