在軟件開發過程中我們經常遇到某個類的成員變量越來越多,顯的亂糟糟的,有沒有一種優雅的解決方法呢?如果大多是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
代碼是不是變得整潔了呢?