Exportar (0) Imprimir
Expandir todo
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

FlagsAttribute (Clase)

Indica que una enumeración puede considerarse como un campo de bits, es decir, un conjunto de marcas.

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

[<SerializableAttribute>]
[<AttributeUsageAttribute(AttributeTargets.Enum, Inherited = false)>]
[<ComVisibleAttribute(true)>]
type FlagsAttribute =  
    class
        inherit Attribute
    end

El tipo FlagsAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFlagsAttributeInicializa una nueva instancia de la clase FlagsAttribute.
Arriba

  NombreDescripción
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Typede la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

Normalmente, los campos de bits se utilizan para listas de elementos que pueden aparecer combinados, mientras que las constantes enumeradas se utilizan, por lo general, para listas de elementos que se excluyen mutuamente. Por lo tanto, a diferencia de las constantes enumeradas, los campos de bits están diseñados para combinarse mediante operaciones OR bit a bit con objeto de generar valores sin nombre. El uso de los campos de bits frente a las constantes enumeradas varía en función del lenguaje.

Atributos de FlagsAttribute

AttributeUsageAttribute se aplica a esta clase y su propiedad Inherited especifica false. Este atributo sólo puede aplicarse a las enumeraciones.

Instrucciones para FlagsAttribute y Enum

  • Sólo se debe utilizar el atributo personalizado FlagsAttribute para una enumeración si se va a llevar a cabo una operación bit a bit (AND, OR, EXCLUSIVE OR) con un valor numérico.

  • Las constantes de enumeración se deben definir en potencias de dos, es decir, 1, 2, 4, 8 y así sucesivamente. Esto consigue que en las constantes de enumeración combinadas no se superpongan las marcas individuales.

  • Hay que plantearse la creación de una constante enumerada para las combinaciones de marcas utilizadas frecuentemente. Por ejemplo, si una enumeración utilizada para las operaciones de E/S con archivos contiene las constantes enumeradas Read = 1 y Write = 2, considere la creación de la constante enumerada ReadWrite = Read OR Write, que combina las marcas Read y Write. Además, la operación OR bit a bit usada para combinar las marcas puede que en algunas circunstancias sea un concepto avanzado que no resulte necesario para las tareas sencillas.

  • Se debe tener cuidado al definir un número negativo como constante enumerada de la marca, puesto que quizás se establezcan muchas de las posiciones de la marca en 1, provocando que el código resulte confuso y que los errores de codificación se produzcan más fácilmente.

  • Una práctica manera de probar si una marca se ha establecido en un valor numérico es llevar a cabo una operación AND bit a bit entre el valor numérico y la constante enumerada de la marca, que establece en cero todos los bits del valor numérico que no correspondan a la marca, y probar a continuación si el resultado de esa operación es igual a la constante enumerada de la marca.

  • Utilice None como el nombre de la constante enumerada de la marca cuyo valor es cero. No se puede utilizar la constante enumerada None en una operación AND bit a bit para probar una marca puesto que el resultado siempre es cero. No obstante, se puede llevar a cabo una comparación lógica, no bit a bit, entre el valor numérico y la constante enumerada None para determinar si están establecidos algunos bits del valor numérico.

    Aunque se cree una enumeración de valor en lugar de una enumeración de marca, sigue mereciendo la pena crear una constante enumerada None. El motivo es que, de forma predeterminada, Common Language Runtime inicializa a cero la memoria utilizada para la enumeración. Por consiguiente, si no se define una constante cuyo valor sea cero, la enumeración contendrá un valor ilegal al crearla.

    Si existe un caso predeterminado obvio que la aplicación deba representar, considere el uso de una constante enumerada cuyo valor sea cero para que represente al valor predeterminado. Si no hay un caso predeterminado, plantéese el uso de una constante enumerada cuyo valor sea cero y que suponga el caso no representado por ninguna de las demás constantes enumeradas.

  • No se debe definir un valor de enumeración únicamente para reflejar el estado de la propia enumeración. Por ejemplo, no defina una constante enumerada que meramente marque el final de la enumeración. Si necesita determinar el último valor de la enumeración, compruebe ese valor explícitamente. Además, puede realizar una verificación de intervalo para la primera y la última de las constantes enumeradas si todos los valores del intervalo son válidos.

  • No hay que especificar constantes enumeradas que estén reservadas para un uso futuro.

  • Cuando se define un método o propiedad que toma una constante enumerada como un valor, se debe considerar la validación del valor. El motivo es que se puede convertir un valor numérico en el tipo de enumeración incluso en el caso de que dicho valor numérico no esté definido en la enumeración.

En el siguiente ejemplo de código se muestra cómo usar el atributo FlagsAttribute y se muestra el efecto sobre el método ToString cuando se usa el atributo FlagsAttribute en una declaración Enum.

No hay ningún ejemplo de código disponible o este idioma no es compatible.

.NET Framework

Compatible con: 4.5.2, 4.5.1, 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

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, 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.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft