Leer en inglés

Compartir a través de


Type.StructLayoutAttribute Propiedad

Definición

Importante

Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.

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

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

Valor de propiedad

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

Excepciones

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

Ejemplos

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

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

Comentarios

StructLayoutAttribute el método no devuelve GetCustomAttributes . En su lugar, use esta propiedad para obtenerla.

Se aplica a

Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.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, 4.8.1
.NET Standard 2.0, 2.1

Consulte también