private BufferStateBase BufferAddBase(object buffer, BufferArgs bufferArgs)
    {
        // 实例化一个Buffer
        BufferStateBase newBuffer = BufferCreate(buffer, bufferArgs);

        // 判断该buffer是否应该添加到容器中
        if (newBuffer.CurrArgs.m_Addition == true)
        {
            // 添加到容器中
            newBuffer.OnEnter();
            m_bufferList.Add(newBuffer);
        }
        else
        {
            // 判断该状态在容器中是否存在
            if (BufferCheckExistsBase(buffer))                // 存在, 更新作用时间
            {
                BufferStateBase oldBuffer = m_bufferList.Find(delegate(BufferStateBase obj) {
                    return(obj.CurrBufferState.Equals(buffer));
                });
                if (oldBuffer != null)
                {
                    oldBuffer.OnRenovate(newBuffer.CurrArgs);
                }
            }
            else                 // 不存在, 直接添加进去
                                 // 添加到容器中
            {
                newBuffer.OnEnter();
                m_bufferList.Add(newBuffer);
            }
        }
        return(newBuffer);
    }
 public void RenovateBuff(BufferStateBase buffer, BufferArgs args)
 {
     foreach (var item in m_bufferList)
     {
         if (item == buffer)
         {
             temp = item;
         }
     }
     if (temp != null)
     {
         temp.OnRenovate(args);
     }
 }