Struct中的Const数组大小

时间:2013-06-23 09:43:10

标签: c# arrays const

我需要能够做到以下几点:

public struct entry_h
{
    public ulong fileid;
    public byte hash[20];
};

与C / C ++一样

我正在对一个结构进行不安全的指针,这就是为什么我需要能够做到这一点。 :/

entries[i].ehash = *(entry_h*)(src + header_size + (R64(pup->entryCount) * 0x20) + (i * 0x20));

1 个答案:

答案 0 :(得分:0)

如果你在C#中使用unsafe关键字,结构体通过fixed关键字支持固定大小的缓冲区。

http://msdn.microsoft.com/en-us/library/zycewsya%28v=vs.80%29.aspx

实施例:

public fixed byte hash[20];

否则,通过安全代码,它将是这样的:

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] hash;