我遇到了使用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会对我们有所帮助吗?
答案 0 :(得分:2)
正如StructLayoutAttribute C#中已经使用Sequential
来表示结构。因此从技术上讲,添加此属性没有任何影响:
C#,Visual Basic和C ++编译器默认情况下将Sequential布局值应用于结构。
您可以安全地将此值添加到C#代码中的结构中,因为它将显式记录意图,但它是可选的。
如果您自己发射结构或直接使用IL,则需要指定它。
请注意,对于类,如果您发现在类中需要特定的字段布局,则需要直接指定Sequential
。
答案 1 :(得分:0)
仅当此结构被封送到非托管代码
时