我想在 C# 中模拟闪存架构。更具体地说,架构如下所示:
- 闪存是块的集合
- 1 个块 = 128 个扇区
- 扇区由数据区和备用区组成
- 数据区 = 8 kB
- 备用区 = 16 B
我想在结构或类中表示它,但问题是我不知道如何在代码中表示一定数量的内存空间。我不能使用 int 或 char 数组,因为我不知道该内存空间中要存储什么......我不太确定,但我认为我可以使用 byte 数据类型来表示它......
我想在 C# 中模拟闪存架构。更具体地说,架构如下所示:
我想在结构或类中表示它,但问题是我不知道如何在代码中表示一定数量的内存空间。我不能使用 int 或 char 数组,因为我不知道该内存空间中要存储什么......我不太确定,但我认为我可以使用 byte 数据类型来表示它......
是的,听起来你想要一个字节数组。例如:
public sealed class Block
{
private readonly Sector[] sectors = new Sector[128];
public Sector this[int index] { get { return sectors[index]; } }
}
public sealed class Sector
{
private readonly byte[] data = new byte[8 * 1024];
public byte this[int index]
{
get { return data[index]; }
set { data[index] = value; }
}
}
(如果需要,您也可以对“备用”区域进行建模 - 但尚不清楚您是否真的需要这样做。)
那只允许一次单个字节的访问-您可能希望拥有一次读取/写入数据块的GetData
方法SetData
。Block
希望这会让你开始。