问题 StructLayout仅适用于struct?


我注意到有很多地方我们有这样的东西:

[StructLayout(LayoutKind.Sequential, Pack = 1)]
    public class E2H_LANEFIND_DATA_T
    {
....
}

类定义用 StructLayout。那是好的还是 StructLayout 仅适用于 struct


12573
2017-07-28 16:20


起源



答案:


文档 明确指出:

您可以应用此属性 上课 或结构。

通常,公共语言运行库控制托管内存中类或结构的数据字段的物理布局。但是,如果要以某种方式排列类或结构需求,可以使用StructLayoutAttribute。 如果要将类传递给需要特定布局的非托管代码,则显式控制类布局非常重要。

重点是我的。

在这种情况下要做的主要考虑因素是您是希望按值还是通过引用传递实例,在这种情况下,您将分别使用结构或类。


16
2017-07-28 16:23





不,它对课程有效。来自MSDN: You can apply this attribute to classes or structures.

StructLayoutAttribute


2
2017-07-28 16:22





1。  http://www.bing.com/search?q=structlayout

2。  http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.structlayoutattribute.aspx

3。 从MSDN复制/粘贴:

您可以将此属性应用于类或结构。


0
2017-07-28 16:22





是的,您可以将此属性应用于该类,但它不起作用。它仅适用于struct。


-5
2018-06-13 09:15