Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Développer Réduire

Type.StructLayoutAttribute, propriété

Mise à jour : novembre 2007

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; }
/** @property */
public StructLayoutAttribute get_StructLayoutAttribute()

public function get StructLayoutAttribute () : StructLayoutAttribute

Valeur de propriété

Type : System.Runtime.InteropServices.StructLayoutAttribute
Obtient un StructLayoutAttribute qui décrit les fonctions de disposition brutes du type actuel.

ExceptionCondition
NotSupportedException

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

StructLayoutAttribute n'est pas retourné par la méthode GetCustomAttributes. Pour l'obtenir, utilisez plutôt cette propriété.

L'exemple de code suivant définit en premier 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 la propriété StructLayoutAttribute pour 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;
    }
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft