C#でクラスのサイズを確認する方法はありますか?
私が尋ねる理由は次のとおりです。
クラスのデータをファイルに格納するルーチンと、同じファイルからこのオブジェクト(クラス)をロードする別のルーチンがあります。各属性は特定の順序で格納されます。このクラスを変更する場合は、これらのエクスポート/インポートルーチンを変更する必要があることを忘れないでください。
C ++の例(これがいかに不器用または悪いプログラミングであっても)は次のようになります。
#define PERSON_CLASS_SIZE 8
class Person
{
char *firstName;
}
..。
bool ExportPerson(Person p)
{
if (sizeof(Person) != PERSON_CLASS_SIZE )
{
CatastrophicAlert("You have changed the Person class and not fixed this export routine!")
}
}
したがって、コンパイル時の前に、Personのサイズを知って、それに応じてこのサイズでエクスポート/インポートルーチンを変更する必要があります。
C#でこれと同様のことを行う方法はありますか、または別の開発者がクラスを変更した場合にインポート/エクスポートルーチンを変更することを「確認」する他の方法はありますか。
...明らかな「クラスでこれにコメントするだけで、これは開発者が物事を台無しにしないことを保証します」-答え。
前もって感謝します。