Exemple #1
0
        static void Main(string[] args)
        {
            const int Alignment = 16;

            Console.WriteLine("Bitmask & Enum with Flags!");

            // 0b_0000_0100 OR
            // 0b_0000_1000 =
            // 0b_0000_1100 = 12
            ColorEnum colorArancione = ColorEnum.Yellow | ColorEnum.Red;


            // 0b_0000_0100 OR
            // 0b_0001_0000 OR
            // 0b_0000_0010 =
            // 0b_0001_0110 = 22
            ColorEnum colorVerdeChiaro = ColorEnum.Yellow | ColorEnum.Blue | ColorEnum.White;


            // 0b_0001_0111
            ColorEnum colorUnknown = (ColorEnum)23;


            // C# 6
            // String interpolation https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated

            Console.WriteLine($"Valori nella variabile colorArancione: [{string.Join(", ", Enum.GetNames(colorArancione.GetType())),Alignment}]");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine(
                $"Colore creato: {EnumExtension.GetName(colorArancione),Alignment}" + Environment.NewLine +
                $"Il colore secondario è formato da due primari: {colorArancione,Alignment} | {(int)colorArancione,Alignment}" + Environment.NewLine +
                $"Contiene il verde? {colorArancione.HasFlag(ColorEnum.Blue | ColorEnum.Yellow),Alignment}" + Environment.NewLine +
                //$"Contiene il giallo? {,Alignment}" + Environment.NewLine +
                $"Contiene il giallo? {(colorArancione & ColorEnum.Yellow) == ColorEnum.Yellow}"
                );
            Console.WriteLine(Environment.NewLine);


            Console.WriteLine(
                $"Colore creato: {EnumExtension.GetName(colorVerdeChiaro),Alignment}" + Environment.NewLine +
                $"Contiene il verde? {colorVerdeChiaro.HasFlag(ColorEnum.Blue | ColorEnum.Yellow),Alignment}"
                );
            Console.WriteLine(Environment.NewLine);


            Console.WriteLine(
                $"Colore creato: {EnumExtension.GetName(colorUnknown),Alignment}" + Environment.NewLine +
                $"Il colore creato contiene i seguenti primari: {colorUnknown,Alignment}" + Environment.NewLine +
                $"Contiene il verde? {colorUnknown.HasFlag(ColorEnum.Blue | ColorEnum.Yellow),Alignment}" + Environment.NewLine +
                $"Contiene il rosso? {colorUnknown.HasFlag(ColorEnum.Red),Alignment}"
                );
            Console.WriteLine(Environment.NewLine);


            Utils.BloccaConsole();
        }