我有一个结构数组,我需要以字节为单位获取它的大小
在C ++中,我可以使用sizeof()
但我需要它C#
thnx
答案 0 :(得分:10)
Marshal.SizeOf(typeof(MyStruct)) * array.Length
答案 1 :(得分:5)
有sizeof
运算符。但是,它只能在不安全的环境中使用。
Mehrdad提出的方法也有区别,命名为:
对于所有其他类型(包括结构),sizeof运算符只能用于不安全的代码块。虽然您可以使用Marshal.SizeOf方法,但此方法返回的值并不总是与sizeof返回的值相同。 Marshal.SizeOf在封送类型后返回大小,而sizeof返回公共语言运行时分配的大小,包括任何填充。
示例:
unsafe
{
int size = sizeof(MyStruct)*myArray.Length;
}
答案 2 :(得分:1)
一个电话-Buffer.ByteLength(your_array)
:https://docs.microsoft.com/en-us/dotnet/api/system.buffer.bytelength?view=netframework-4.7.2