Auf Englisch lesen

Teilen über


Type.StructLayoutAttribute Eigenschaft

Definition

Ruft ein StructLayoutAttribute ab, der das Layout des aktuellen Typs beschreibt.

C#
public virtual System.Runtime.InteropServices.StructLayoutAttribute? StructLayoutAttribute { get; }
C#
public virtual System.Runtime.InteropServices.StructLayoutAttribute StructLayoutAttribute { get; }

Eigenschaftswert

StructLayoutAttribute

Ruft ein StructLayoutAttribute ab, das den allgemeinen Layoutfunktionen des aktuellen Typs beschreibt.

Ausnahmen

Die aufgerufene Methode wird in der Basisklasse nicht unterstützt.

Beispiele

Im folgenden Codebeispiel werden zunächst eine Klasse, eine Struktur und eine Struktur mit speziellen Layoutattributen definiert (die Strukturen sind innerhalb der -Klasse geschachtelt). Im Beispiel wird dann die StructLayoutAttribute -Eigenschaft verwendet, um einen StructLayoutAttribute für jeden Typ abzurufen, und die Eigenschaften der Attribute werden angezeigt.

C#
using System;
using System.Runtime.InteropServices;

public class Example
{
    public static void Main()
    {
        DisplayLayoutAttribute(typeof(Example).StructLayoutAttribute);
        DisplayLayoutAttribute(typeof(Test1).StructLayoutAttribute);
        DisplayLayoutAttribute(typeof(Test2).StructLayoutAttribute);
    }

    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;
    }
}

Hinweise

StructLayoutAttribute wird nicht von der GetCustomAttributes -Methode zurückgegeben. Verwenden Sie stattdessen diese Eigenschaft, um sie abzurufen.

Gilt für

Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

Siehe auch