程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 成員變量太多怎麼破?,成員變量

成員變量太多怎麼破?,成員變量

編輯:關於.NET

成員變量太多怎麼破?,成員變量


  在軟件開發過程中我們經常遇到某個類的成員變量越來越多,顯的亂糟糟的,有沒有一種優雅的解決方法呢?如果大多是BOOL型可以使用BitArray來管理這些變量,其它類型可以創建一個數據結構包含進去。

BitArray: Manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).

  

public class BitArrayTest
        {
            private BitArray bitArray;

            public BitArrayTest()
            {
                int leng = Enum.GetValues(typeof(Flag)).Length;
                bitArray = new BitArray(leng);
            }

            public bool GetFlag(Flag flag)
            {
                lock(bitArray.SyncRoot)
                {
                    return bitArray[(int)flag];
                }
            }
            public void SetFlag(Flag flag, bool result)
            {
                lock(bitArray.SyncRoot)
                {
                    bitArray[(int)flag] = result;
                }
            }

            public void ResetFlag()
            {
                lock (bitArray.SyncRoot)
                {
                    bitArray.SetAll(false);
                }
            }

            public void SetFlagTrue(Flag flag)
            {
                SetFlag(flag, true);
            }

            public void SetFlagFalse(Flag flag)
            {
                SetFlag(flag, false);
            }
        }
View Code

 

比如有成員變量flagOne,flagTwo, flagThree,可以通過一個枚舉類映射變量:

 

public enum Flag
        {
            flagOne,
            flagTwo,
            flagThree,
        }
View Code

 

設置和讀取變量:

BitArrayTest test = new BitArrayTest();
            test.SetFlagTrue(Flag.flagOne);
            if (test.GetFlag(Flag.flagOne))
            {

            }
View Code

 

代碼是不是變得整潔了呢?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved