我正在尝试从内存映射文件中读取 c 样式的 unicode 字符串并IndexOutOfRangeException
发生了,所以我通过逐个字符复制 char 来修复它,但我想使用ReadArray
,它更具可读性。
MemoryMappedFile file = MemoryMappedFile.OpenExisting("some name");
MemoryMappedViewAccessor view = file.CreateViewAccessor();
int len = (int)view.ReadUInt64(0); // Length of string + 1 is stored.
char[] buffer = new char[len];
//view.ReadArray<char>(0, buffer, sizeof(UInt64), len); // EXCEPTION
for (int i = 0; i < len; i++) // char by char, works fine.
buffer[i] = view.ReadChar(sizeof(UInt64) + sizeof(char) * i);
试图找到一个简短的例子来展示如何使用ReadArray<>
,但我做不到。