默认情况下,C# 中的结构[StructLayout( LayoutKind.Sequential )]
的实现原因基本上是说明这些类型的对象通常用于 COM 互操作,并且它们的字段必须保持它们定义的顺序。类已LayoutKind.Auto
定义。
我的问题是我是否应该明确声明我的结构,[StructLayout( LayoutKind.Auto )]
这是否会给我带来任何优于默认设置的好处?我的意思是,如果结构是在stack上初始化的,它会有什么不同——即GC不必移动它们吗?当结构在堆上初始化时也会有帮助 - 即是某个类的一部分吗?