7バイト(または3または777)の値型が必要だとします。
私はそれを次のように定義することができます:
public struct Buffer71
{
public byte b0;
public byte b1;
public byte b2;
public byte b3;
public byte b4;
public byte b5;
public byte b6;
}
それを定義するより簡単な方法は、固定バッファーを使用することです
public struct Buffer72
{
public unsafe fixed byte bs[7];
}
もちろん、2番目の定義はもっと簡単です。問題は、固定バッファーに提供する必要のある安全でないキーワードにあります。これはポインタを使用して実装されているため、安全ではないことを理解しています。
私の質問は、なぜそれが安全でなくてはならないのかということです。C#が任意の定数長配列を提供し、C#参照型配列または安全でないバッファーにするのではなく、それらを値型として保持できないのはなぜですか?