结构数组的大小(以字节为单位)

时间:2011-04-13 21:54:50

标签: c#

我有一个结构数组,我需要以字节为单位获取它的大小

在C ++中,我可以使用sizeof()

但我需要它C#

thnx

3 个答案:

答案 0 :(得分:10)

Marshal.SizeOf(typeof(MyStruct)) * array.Length

答案 1 :(得分:5)

sizeof运算符。但是,它只能在不安全的环境中使用。

Mehrdad提出的方法也有区别,命名为:

  

对于所有其他类型(包括结构),sizeof运算符只能用于不安全的代码块。虽然您可以使用Marshal.SizeOf方法,但此方法返回的值并不总是与sizeof返回的值相同。 Marshal.SizeOf在封送类型后返回大小,而sizeof返回公共语言运行时分配的大小,包括任何填充。

source

示例:

unsafe
{
  int size = sizeof(MyStruct)*myArray.Length;
}

答案 2 :(得分:1)