C#struct中StructLayoutAttribute的优点是什么

时间:2013-02-20 06:27:04

标签: c# attributes

我遇到了使用StructLayoutAttribute,但我不知道它如何有用。我有一个像

这样的结构
[StructLayout(LayoutKind.Sequential)]
public struct XYData
{

    public int x;

    public int y;

    public XYData(int x, int y)
    {
        this.x = x;
        this.y = y;
    }
}

应用属性StructLayoutAttribute会对我们有所帮助吗?

2 个答案:

答案 0 :(得分:2)

正如StructLayoutAttribute C#中已经使用Sequential来表示结构。因此从技术上讲,添加此属性没有任何影响:

  

C#,Visual Basic和C ++编译器默认情况下将Sequential布局值应用于结构。

您可以安全地将此值添加到C#代码中的结构中,因为它将显式记录意图,但它是可选的。

如果您自己发射结构或直接使用IL,则需要指定它。

请注意,对于类,如果您发现在类中需要特定的字段布局,则需要直接指定Sequential

答案 1 :(得分:0)

仅当此结构被封送到非托管代码

See MSDN Remarks