저희가 매거를 어떻게 설정해야 돼요?

4685 단어 매거
많은 친구들은 매거진을 설정하는 것이 아직 쉽지 않다고 생각한다. 아래 코드만 있으면 OK,
        public enum Test

        {

            /// <summary>

            ///   

            /// </summary>

            Deny = 0,

            /// <summary>

            ///   

            /// </summary>

            Del = 1,

            /// <summary>

            ///   

            /// </summary>

            Modify = 2,

            /// <summary>

            ///   

            /// </summary>

            Add = 3,

            /// <summary>

            ///   

            /// </summary>

            Search = 4

        }


우리는 위의 코드를 보았는데, 이러한 설정은 확실히 틀림없지만, 확실히 복용적인 효과를 고려하지 못했다.
많은 경우에 우리는 WINDOW의 일괄적인 사용을 볼 수 있다. 예를 들어 Test t=Test.Add|Test.Del, 등등
그러면 저희가 어떻게 해야 이런 매거진을 설정할 수 있을까요?다음은 열거 코드를 살펴보겠습니다.
        [Flags]

        public enum Popendom : int

        {

            /// <summary>

            ///   

            /// </summary>

            Deny = 1,

            /// <summary>

            ///   

            /// </summary>

            Del = 2,

            /// <summary>

            ///   

            /// </summary>

            Modify = 4,

            /// <summary>

            ///   

            /// </summary>

            Add = 8,

            /// <summary>

            ///   

            /// </summary>

            Search = 16

        }


1、[Flags]
C#의 열거에서: Flags 속성은 매우 중요합니다. 왜냐하면 그녀는 당신의 열거 유형을 문자열로 바꿀 수 있기 때문입니다.
2. public enum Popendom: int라는 매거진 계승의 int 유형은 제약의 역할을 한다.
3. 매거 설정 값, 많은 사람들이 안의 값을 마음대로 설정할 수 있다고 생각하지만 그 안에 설정 기교가 있어 프로젝트의 수요에 따라 다르다.
병용할 수 있는 매거진을 설정하려면 누적값이 매거진 설정값에 나타나지 않는다는 원칙이 필요합니다.
Deny = 1, Del = 2, Modify = 4 등
(0)+1=1,
1+2=(3)
1+2+4=(7)
(값)은 열거에 나타날 수 없습니다.즉 I*2
이렇게 하면 저희가 이룰 수 있어요.
Popendom p=Popendom.Del|Popendom.Add|Popendom.Modify 잠깐만요.
 
        public MainPage()

        {

            InitializeComponent();

            Popendom ps = Popendom.Add | Popendom.Del | Popendom.Modify | Popendom.Search | Popendom.Deny;

            IList<Popendom> list = GetPopendomList(ps.ToString());

            bool b = HasThisPopendom(ps.ToString(), Popendom.Del);

        }



        [Flags]

        public enum Popendom : int

        {

            /// <summary>

            ///   

            /// </summary>

            Deny = 1,

            /// <summary>

            ///   

            /// </summary>

            Del = 2,

            /// <summary>

            ///   

            /// </summary>

            Modify = 4,

            /// <summary>

            ///   

            /// </summary>

            Add = 8,

            /// <summary>

            ///   

            /// </summary>

            Search = 16

        }



        public enum Test

        {

            /// <summary>

            ///   

            /// </summary>

            Deny = 0,

            /// <summary>

            ///   

            /// </summary>

            Del = 1,

            /// <summary>

            ///   

            /// </summary>

            Modify = 2,

            /// <summary>

            ///   

            /// </summary>

            Add = 3,

            /// <summary>

            ///   

            /// </summary>

            Search = 4

        }



        public IList<Popendom> GetPopendomList(string popendoms)

        {

            List<Popendom> list = new List<Popendom>();

            string[] ps = GetPopendoms(popendoms);

            foreach (string p in ps)

            {

                switch (p)

                {

                    case "Deny": list.Add(Popendom.Deny); break;

                    case "Del": list.Add(Popendom.Del); break;

                    case "Modify": list.Add(Popendom.Modify); break;

                    case "Add": list.Add(Popendom.Add); break;

                    case "Search": list.Add(Popendom.Search); break;

                }

            }

            return list;

        }



        public bool HasThisPopendom(string popendoms, Popendom p)

        {

            return GetPopendoms(popendoms).Contains(p.ToString());

        }



        public string[] GetPopendoms(string popendoms)

        {

            return popendoms.Replace(" ", "").Split(',');

        }

좋은 웹페이지 즐겨찾기