StructLayoutAttribute Property

Type.StructLayoutAttribute Property


Gets a StructLayoutAttribute that describes the layout of the current type.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public virtual StructLayoutAttribute StructLayoutAttribute { get; }

Property Value

Type: System.Runtime.InteropServices.StructLayoutAttribute

Gets a StructLayoutAttribute that describes the gross layout features of the current type.

Exception Condition

The invoked method is not supported in the base class.

StructLayoutAttribute is not returned by the GetCustomAttributes method. Instead, use this property to get it.

The following code example first defines a class, a structure, and a structure with special layout attributes (the structures are nested within the class). The example then uses the StructLayoutAttribute property to obtain a StructLayoutAttribute for each type, and displays the properties of the attributes.

using System;
using System.Runtime.InteropServices;

public class Example
    public static void Main()

    private static void DisplayLayoutAttribute(StructLayoutAttribute sla)
        Console.WriteLine("\r\nCharSet: "+sla.CharSet.ToString()+"\r\n   Pack: "+sla.Pack.ToString()+"\r\n   Size: "+sla.Size.ToString()+"\r\n  Value: "+sla.Value.ToString());
    public struct Test1
        public byte B1;
        public short S;
        public byte B2;
    [StructLayout(LayoutKind.Explicit, Pack=1)] public struct Test2
        [FieldOffset(0)] public byte B1;
        [FieldOffset(1)] public short S;
        [FieldOffset(3)] public byte B2;

.NET Framework
Available since 2.0
Return to top
© 2015 Microsoft