Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
Type.StructLayoutAttribute, propriété
Obtient un StructLayoutAttribute qui décrit la disposition du type actuel.
Assembly : mscorlib (dans mscorlib.dll)
Valeur de propriété
Type : System.Runtime.InteropServices.StructLayoutAttributeObtient 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é 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 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.