Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Type.StructLayoutAttribute propriété

 

Date de publication : novembre 2016

Obtient un StructLayoutAttribute qui décrit la disposition du type actuel.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public virtual StructLayoutAttribute StructLayoutAttribute { get; }

Valeur de propriété

Type: System.Runtime.InteropServices.StructLayoutAttribute

Obtient un StructLayoutAttribute qui décrit les fonctions de disposition brutes du type actuel.

Exception Condition
NotSupportedException

La méthode appelée n’est pas prise en charge dans la classe de base.

StructLayoutAttribute n’est pas retournée par le GetCustomAttributes (méthode). Au lieu de cela, utilisez cette propriété pour l’obtenir.

L’exemple de code suivant définit tout d’abord une classe, une structure et une structure avec des attributs de disposition spéciaux (les structures sont imbriquées dans la classe). L’exemple utilise ensuite le StructLayoutAttribute propriété à obtenir un StructLayoutAttribute pour chaque type et affiche les propriétés des attributs.

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

.NET Framework
Disponible depuis 2.0
Retour au début
Afficher: