Sto provando a effettuare la transizione da C a C# e ho alcune domande sul salvataggio di oggetti su file e serializzazione.Salvataggio oggetti/serializzazione
In C se si desidera salvare una struttura dati, mi è stato insegnato che salvarlo in un formato di testo come una stringa è spesso inutile e un file binario che esiste come un'istantanea della memoria è spesso meglio perché non lo fa t bisogno di codificare/decodificare e abbinare le stringhe ai campi. In C# l'approccio sembra essere diverso, converte i campi oggetto separatamente in una stringa o in un altro formato e quindi ricostruisce l'oggetto quando necessario. Non sono sicuro di come funzioni la serializzazione binaria, ma ritengo che converta i dati in un formato e non esista come un'istantanea di memoria pura non formattata.
Perché il metodo "snapshot della memoria" senza codifica/decodifica non è utilizzato in C#? L'unica ragione per cui posso pensare è la compatibilità con altri codici e ambienti, e forse ha a che fare con la complessità degli oggetti rispetto alle strutture regolari.
Cosa succede se l'oggetto ha proprietà complesse, non solo tipi di valore; quindi ogni "parte" dell'oggetto verrà memorizzata su una diversa posizione di memoria; anche questi oggetti possono includere altri oggetti. Solo una semplice ipotesi, ma sarebbe davvero complesso eseguire una tale logica per salvare oggetti. – daryal
Una delle grandi riduzioni di costi e benefici per la produttività è l'astrazione della memoria di .NET e l'hardware in generale. Se hai bisogno di persistere con i requisiti di base, lascia che il framework gestisca il lavoro pesante (come spesso accade) e segna la classe con [Serializable] e usa le classi disponibili in System.Runtime.Serialization.Formatters.Binary. – Michael