zoukankan      html  css  js  c++  java
  • 成员变量太多怎么破?

      在软件开发过程中我们经常遇到某个类的成员变量越来越多,显的乱糟糟的,有没有一种优雅的解决方法呢?如果大多是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

    代码是不是变得整洁了呢?

  • 相关阅读:
    多线程 C#解决方案小结
    程序员的灯下黑:Handson,Handson,Handson!
    有一家银行每天早上都在你的帐户里存入86,400
    3D流水线[引用]
    诸葛亮著作
    Vista 用户头像存储路径
    C# 关闭显示器的函数
    程序员的灯下黑:管理还是技术?兴趣优先
    VS1.4挤房+MH的登陆器
    失眠的调养
  • 原文地址:https://www.cnblogs.com/gujf2016/p/6268551.html
Copyright © 2011-2022 走看看