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

Isl*_*ser 6 c#

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

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

但我需要它C#

日Thnx

Meh*_*dad 10

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


Fem*_*ref 5

sizeof运营商.但是,它只能在不安全的环境中使用.

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

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

资源

例:

unsafe
{
  int size = sizeof(MyStruct)*myArray.Length;
}
Run Code Online (Sandbox Code Playgroud)