示例#1
0
        public bool Remove(string key)
        {
            var name = String.Format("{0}.{1}", _name, key);
            var data = CallContext.LogicalGetData(name);

            CallContext.FreeNamedDataSlot(name);
            //DecrementCount();
            return(data == null);
        }
示例#2
0
        public bool Pop()
        {
            var len = Length();

            if (len <= 0)
            {
                return(false);
            }
            len = len - 1;

            CallContext.FreeNamedDataSlot(IndexName(len));
            CallContext.LogicalSetData(_size, len);
            return(true);
        }
示例#3
0
        public bool TryRemove(string key, out T result)
        {
            var name = String.Format("{0}.{1}", _name, key);
            var data = CallContext.LogicalGetData(name);

            CallContext.FreeNamedDataSlot(name);
            //DecrementCount();
            if (data == null)
            {
                result = default(T);
                return(false);
            }
            else
            {
                result = (T)data;
                return(true);
            }
        }