つまり、struct
いくつかのデータを表すためにがあり、次のようになります。
struct LilStruct
{
public readonly short A;
public readonly byte B;
public readonly byte C;
public LilStruct(short a, byte b, byte c)
{
A = a;
B = b;
C = c;
}
}
Ashort
と2つのbyte
値はすべて32ビットに収まる可能性があります。私が疑問に思っているのは、(位置合わせの目的、パフォーマンスなどのために)このデータを代わりに次の形式で保存することが実際に意味があるかどうかです。
struct LilStruct
{
private readonly uint _value;
public LilStruct(short a, byte b, byte c)
{
_value = ((uint)a << 16) | ((uint)b << 8) | (uint)c;
}
public int A
{
get { return (int)(_value >> 16); }
}
public int B
{
get { return (int)(_value >> 8) & 0x000000FF; }
}
public int C
{
get { return (int)(_value & 0x000000FF); }
}
}
これは無意味ですか?メリット/デメリットは何ですか?