Как я могу ссылаться на версию пакета в скрипте npm?

В конструкторе if ((x & y) == y)... есть что-то слишком многословное, особенно если x AND y являются составными наборами флагов, и вы только хотите знать, есть ли какое-либо перекрытие.

In этот случай, все, что вам действительно нужно знать, - если после битмаскирования есть ненулевое значение [1].

[1] См. комментарий Хайме. Если бы мы были достоверно bitmasking , нам нужно было бы только проверить, что результат положительный. Но поскольку enum s может быть отрицательным, даже, как ни странно, в сочетании с атрибутом [Flags] , он защищен кодом для != 0, а не > 0.

blockquote>

Создание настроек @ andnil ...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BitFlagPlay
{
    class Program
    {
        [Flags]
        public enum MyColor
        {
            Yellow = 0x01,
            Green = 0x02,
            Red = 0x04,
            Blue = 0x08
        }

        static void Main(string[] args)
        {
            var myColor = MyColor.Yellow | MyColor.Blue;
            var acceptableColors = MyColor.Yellow | MyColor.Red;

            Console.WriteLine((myColor & MyColor.Blue) != 0);     // True
            Console.WriteLine((myColor & MyColor.Red) != 0);      // False                
            Console.WriteLine((myColor & acceptableColors) != 0); // True
            // ... though only Yellow is shared.

            Console.WriteLine((myColor & MyColor.Green) != 0);    // Wait a minute... ;^D

            Console.Read();
        }
    }
}

24
задан RobC 11 February 2019 в 21:18
поделиться