¿Cuál es la diferencia entre usar Flags y FlagsAttribute con una enumeración?C# Flags vs FlagsAttribute
17
A
Respuesta
27
Banderas es simplemente una abreviatura de FlagsAttribute. En C#, puede dejar el sufijo "Atributo" fuera de un atributo cuando lo aplica a un elemento.
En cuanto a Banderas en sí, todo lo que hace es denotar la enum como teniendo miembros de banderas. Aún debe asegurarse de que los miembros tengan valores que se combinen correctamente. Algunas funciones del marco, como Enum.ToString, buscarán el atributo de indicadores para determinar cómo interpretar el valor.
Cuestiones relacionadas
- 1. C# Enums with Flags Attribute
- 2. Python argparse toggle flags
- 3. Android build flags?
- 4. Flags Enum attribute
- 5. Enum.TryParse con el atributo Flags
- 6. C#, Flags Enum, función genérica para buscar una marca
- 7. ¿Quitar un indicador de C++ FLAGS en Makefile?
- 8. ¿Múltiples formas de definir C# Enums con el atributo [Flags]?
- 9. ¿Equivalente de C# Enum Flags Attribute en Java?
- 10. Valor aleatorio de Flags enum
- 11. C fopen vs abierta
- 12. Propiedad de control ASP.NET con [Flags] enum
- 13. flags para st_mode of stat system call
- 14. ¿Cambiar los valores en Flags Enum?
- 15. Enum (flags) miembro compuesto por otros miembros
- 16. Html Lista de países con flags
- 17. C vs C++ (Objective-C vs Objective-C++) para iPhone
- 18. Boo vs C# vs Python?
- 19. Usar --js-flags en Google Chrome para obtener --traced salida
- 20. static vs extern "C"/"C++"
- 21. Procesamiento de imágenes OpenCV - C++ vs C vs Python
- 22. Int32 Int64 vs vs Int en C#
- 23. Objective-C - Privado vs Protegido vs Público
- 24. C - scanf() vs gets() vs fgets()
- 25. C++ deque vs queue vs stack
- 26. C++, static vs. namespace vs. singleton
- 27. Objective-C: Assertion vs. Exception vs. Error
- 28. C#/VB.Net Tarea vs vs Tema BackgroundWorker
- 29. Managed C++ (C++/CLI) vs C#/VB.NET
- 30. C# Casting vs. Parse
Una forma de asegurarme de que los valores "combinen correctamente" es comenzando en 0 para 'ninguno', luego cada valor enum se incrementa en bits cambiando uno a la izquierda. Ejemplo: '1 << 0' (1),' 1 << 1' (2), '1 << 2' (4), etc. –