StructLayoutAttribute Class

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

-------------------------------------------------------------------------------------------------------------------------

1). Lets you control the physical layout of the data fields of a class or structure. 

2). Remarks

-----------------------------------------------------------------------------------------------------------------

You can apply this attribute to classes or structures.

Typically, the common language runtime controls the physical layout of the data fields of a class or structure in managed memory. However, if you want to arrange the class or structure needs in a certain way, you can use StructLayoutAttribute. Explicit control of a class layout is important if the class is to be passed to unmanaged code that expects a specific layout. The ​LayoutKind​ value Sequential is used to force the members to be laid out sequentially in the order they appear. Explicit controls the precise position of each data member. With Explicit, each member must use the ​FieldOffsetAttribute​ to indicate the position of that field within the type.

C#, Visual Basic, and C++ compilers apply the Sequential layout value to structures by default. For classes, you must apply the Sequential value explicitly. The ​Tlbimp.exe (Type Library Importer)​ also applies this attribute; it always applies the Sequential value when it imports a type library.