Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad Type.StructLayoutAttribute

 

Publicado: octubre de 2016

Obtiene una clase StructLayoutAttribute que describe el diseño del tipo actual.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public virtual StructLayoutAttribute StructLayoutAttribute { get; }

Valor de propiedad

Type: System.Runtime.InteropServices.StructLayoutAttribute

Obtiene una clase StructLayoutAttribute que describe las características de diseño generales del tipo actual.

Exception Condition
NotSupportedException

El método invocado no se admite en la clase base.

StructLayoutAttribute no devuelve el GetCustomAttributes (método). En su lugar, utilice esta propiedad para obtenerlo.

En primer lugar, en el ejemplo de código siguiente se define una clase, una estructura y una estructura con atributos de diseño especiales (las estructuras están anidadas dentro de la clase). El ejemplo se utiliza la StructLayoutAttribute propiedad para obtener un StructLayoutAttribute para cada tipo y muestra las propiedades de los atributos.

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 desde 2.0
Volver al principio
Mostrar: