Type.StructLayoutAttribute Property

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

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

'Declaration
Public Overridable ReadOnly Property StructLayoutAttribute As StructLayoutAttribute

Property Value

Type: System.Runtime.InteropServices.StructLayoutAttribute
Gets a StructLayoutAttribute that describes the gross layout features of the current type.

ExceptionCondition
NotSupportedException

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.


Imports System
Imports System.Runtime.InteropServices

Public Class Example
    Public Shared Sub Main()
        DisplayLayoutAttribute(GetType(Example).StructLayoutAttribute)
        DisplayLayoutAttribute(GetType(Test1).StructLayoutAttribute)
        DisplayLayoutAttribute(GetType(Test2).StructLayoutAttribute)
    End Sub

    Private Shared Sub DisplayLayoutAttribute( _
        ByVal sla As StructLayoutAttribute)
        Console.WriteLine(vbCrLf & "CharSet: " & sla.CharSet.ToString() _
            & vbCrLf & "   Pack: " & sla.Pack.ToString() _
            & vbCrLf & "   Size: " & sla.Size.ToString() _
            & vbCrLf & "  Value: " & sla.Value.ToString())
    End Sub

    Public Structure Test1
        Public B1 As Byte
        Public S As Short
        Public B2 As Byte
    End Structure

    <StructLayout(LayoutKind.Explicit, Pack:=1)> _
    Public Structure Test2
        <FieldOffset(0)> Public B1 As Byte
        <FieldOffset(1)> Public S As Short
        <FieldOffset(3)> Public B2 As Byte
    End Structure
End Class


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft