解决方案 »

  1.   

    BitVector就是’位向量‘,位向量可以用来组合一些状态:0001: 有现货
    0010: 有打折
    0100: 有赠品那么
    0101: 就是有现货和有赠品的组合。BitVector32的32表示最多支持32种状态(组合就多多了)。
    SafeBitVector32的Safe就是安全,表示该类是线程安全的。
      

  2.   

    谢谢楼上的哥们了,又明白一点点了。那具体的代码像这样的,  private SafeBitVector32 _flags;      protected void InitializationComplete()
            {
                this._flags[1] = true;
                if (this._flags[2])
                {
                    this.Dispose();
                }
            }在get,set的时候是怎么运算的呢?比如,_flags[1]= true;那下面的这部分代码,执行之后,是如何对应你上面的说法呢? internal bool this[int bit]
            {
                get
                {
                    int data = this._data;
                    return (data & bit) == bit;
                }
                set
                {
                    int data;
                    int num;
                    do
                    {
                        data = this._data;
                        int value2;
                        if (value)
                        {
                            value2 = (data | bit);
                        }
                        else
                        {
                            value2 = (data & ~bit);
                        }
                        num = Interlocked.CompareExchange(ref this._data, value2, data);
                    }
                    while (num != data);
                }
            }