是否可以在另一个struct
中声明struct
数组字段?
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public unsafe struct A
{
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public unsafe struct B
{
public fixed A FieldA[123];
}
Visual Studio告诉
FieldA
只能是任何简单类型的数组,而不是struct
。这里有什么解决方案/解决方法吗? 最佳答案
是否可以在另一个结构中声明结构数组字段?
是的,但是如果要将其设置为固定大小的缓冲区,则存在一些限制。根据C#4规范的18.7.1节:
固定大小的缓冲区声明的缓冲区元素类型指定声明所引入的缓冲区的元素类型。缓冲区元素类型必须是预定义类型sbyte
,byte
,short
,ushort
,int
,uint
,long
,ulong
,char
,float
之一,double
或bool
。
我不知道有任何替代方法可以模拟任意结构的固定大小的缓冲区。