Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: javierx0246 en 04 de Diciembre 2022, 15:30

Título: Duda sobre flags de enumeracion c#
Publicado por: javierx0246 en 04 de Diciembre 2022, 15:30
Hola tengo que hacer un ejercicio sobre Flags de enumeracion y aun no lo entiendo del todo

Ejercicio:

Crea una aplicación para gestionar la personalización de coches en un determinado taller.

    Tendrás que utilizar Enumeraciones NO excluyentes, debes definir la enumeración con un mínimo de 7 colores (incluido el None).
    La aplicación permitirá añadir un color o más a la elección, eliminar un color de los que ya se habían elegido y mostrar los colores elegidos.
    El programa comenzará mostrando un menú, con las tres opciónes y la que nos permita salir.



Mi codigo







using System.Text;
internal class Program
{
    [Flags]
    public enum Color
    {
        None = 0b_0000_0000, //0
        Amarillo = 0b_0000_0001, //1
        Rojo = 0b_0000_0010,//2
        Verde = 0b_0000_0100,//4
        Violeta =0b_0000_1000 , //6
        Naranja =0b_0001_0000, //8
        Negro = 0b_0010_0000, //16 


    }
 public static Object LeerEnum(Type tipo, string texto, string textoError)
    {

        string pregunta = "";
        bool error = false;


        foreach (string obj in Enum.GetNames(tipo))
        {
            Console.WriteLine($"{obj}");
        }
        do
        {
            Console.WriteLine("Introduce un elemento");
            pregunta = Console.ReadLine();
            if (Enum.IsDefined(tipo, pregunta))
            {
                Console.WriteLine(texto);
                error = true;
                return Enum.Parse(tipo, pregunta);
            }
            else
            {
                Console.WriteLine(textoError);
                foreach (string a in Enum.GetNames(tipo))
                {
                    Console.WriteLine($" Los valores correctos son : {a}");
                }
                error = false;
            }
        } while (error == false);


        return null;

    }
    public static Color AñadeColor()
    {
       
    }
    private static void Main(string[] args)
    {
 Color b = (Color)LeerEnum(typeof(Color), "Se ha cogido correctamente", "Error");

        Console.ReadLine();


    }

}
Gracias