Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

FieldAttributes (Enumeración)

Especifica los marcadores que describen los atributos de un campo.

Esta enumeración tiene un atributo FlagsAttribute que permite una combinación bit a bit de los valores de miembro.

Espacio de nombres:  System.Reflection
Ensamblado:  mscorlib (en mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
[FlagsAttribute]
public enum FieldAttributes
Nombre de miembroDescripción
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFieldAccessMaskEspecifica el nivel de acceso de un campo dado.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsPrivateScopeIndica que no se pueden crear referencias al campo.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsPrivateEspecifica que sólo se puede obtener acceso al campo mediante los tipos principales.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFamANDAssemEspecifica que sólo los subtipos de este ensamblado pueden obtener acceso al campo en cuestión.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsAssemblyEspecifica que se puede obtener acceso al campo en todo el ensamblado.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFamilyEspecifica que sólo se puede obtener acceso al campo mediante tipos y subtipos.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFamORAssemEspecifica que se puede obtener acceso al campo mediante subtipos en cualquier parte, así como en todo el ensamblado.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsPublicEspecifica que cualquier miembro, para el cual este ámbito sea visible, puede obtener acceso al campo.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsStaticEspecifica que el campo representa el tipo definido, o bien es un ejemplo.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsInitOnlyEspecifica que solo se inicializa el campo y solo se puede establecer en el cuerpo de un constructor.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsLiteralEspecifica que el valor del campo es una constante (estática o de enlace en tiempo de diseño) en tiempo de compilación. Cualquier intento de establecerlo produce una FieldAccessException.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsNotSerializedEspecifica que no es necesario serializar el campo cuando el tipo tiene acceso remoto.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsSpecialNameEspecifica un método especial y su nombre describe en qué sentido es especial dicho método.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsPinvokeImplReservado para un uso futuro.
Compatible con XNA FrameworkReservedMaskReservado.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsRTSpecialNameEspecifica que Common Language Runtime (API de metadatos internas) debe comprobar la codificación de nombres.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHasFieldMarshalEspecifica que el campo contiene información de cálculo de referencias.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHasDefaultEspecifica que el campo tiene un valor predeterminado.
Compatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHasFieldRVAEspecifica que el campo tiene una dirección relativa virtual (RVA). La RVA es la ubicación del cuerpo del método que se encuentra en la imagen principal, como por ejemplo, una dirección relativa al principio del archivo de imagen donde se encuentra.

FieldAttributes utiliza el valor de FieldAccessMask para enmascarar sólo las partes del valor de atributo que corresponden a la accesibilidad. Por ejemplo, en el código siguiente se determina si Attributes tiene el bit público establecido.


FieldInfo fi = obj.GetType().GetField("field1");

if ((fi.Attributes & FieldAttributes.FieldAccessMask) ==
    FieldAttributes.Public)
{
    Console.WriteLine("{0:s} is public. Value: {1:d}", fi.Name, fi.GetValue(obj));
}


Para obtener la propiedad FieldAttributes, es necesario obtener primero el tipo (Type) de la clase. A partir de Type, obtenga FieldInfo. A partir de FieldInfo, obtenga Attributes.

El valor enumerado es un número que representa la operación OR bit a bit de los atributos implementados en el campo.

En este ejemplo, se crean tres campos y se muestran los valores FieldAttributes. Un valor de FieldAttributes puede contener varios atributos, como Public y Literal, según se muestra en el tercer campo.


using System;
using System.Reflection;

public class Demo
{
    // Make three fields:
    // The first field is private.
    private string m_field = "String A";

    // The second field is public.
    public string Field = "String B";

    // The third field is public const (hence also literal and static),
    // with a default value.
    public const string FieldC = "String C";
}

public class Myfieldattributes
{
    public static void Main()
    {
        Console.WriteLine ("\nReflection.FieldAttributes");
        Demo d = new Demo();

        // Get a Type object for Demo, and a FieldInfo for each of
        // the three fields. Use the FieldInfo to display field
        // name, value for the Demo object in d, and attributes.
        //
        Type myType = typeof(Demo);
        FieldInfo fiPrivate = myType.GetField("m_field",
            BindingFlags.NonPublic | BindingFlags.Instance);
        DisplayField(d, fiPrivate);

        FieldInfo fiPublic = myType.GetField("Field",
            BindingFlags.Public | BindingFlags.Instance);
        DisplayField(d, fiPublic);

        FieldInfo fiConstant = myType.GetField("FieldC",
            BindingFlags.Public | BindingFlags.Static);
        DisplayField(d, fiConstant);
    }

    static void DisplayField(Object obj, FieldInfo f)
    { 
        // Display the field name, value, and attributes.
        //
        Console.WriteLine("{0} = \"{1}\"; attributes: {2}", 
            f.Name, f.GetValue(obj), f.Attributes);
    }
}

/* This code example produces the following output:

Reflection.FieldAttributes
m_field = "String A"; attributes: Private
Field = "String B"; attributes: Public
FieldC = "String C"; attributes: Public, Static, Literal, HasDefault
 */


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.