2015年9月7日月曜日

[C#] 構造体におけるconstメンバ

他人様のコードを読んで構造体におけるconstメンバの使い方が勉強になったのでメモ


//こういった構造体の宣言をして
struct hoge{
    public const int size = 8;
    public int aaa;
    public int bbb;
}

//変数の宣言をして
hoge abc;

//構造体のサイズを出力する(二通り)
Debug.Log( Marshal.SizeOf(abc) );    //8
Debug.Log( hoge.size );    //8



結果から、constメンバは構造体の実体には含まれない。
"構造体 const メンバ"でググっても解説の類が見つからないのだけど
物凄く基本的な使い方なのだろうか。

Marshal.SizeOfメソッドを使わない分軽いだろうし、
size変数といった形で使うのはとてもわかりやすく使いやすいように思えた。

この場合、abc.sizeとできたほうがより直観的だとは思うけど、
それだとその分構造体の容量増えちゃうしね。