示例#1
0
        public T Pop <T>() where T : GPoolObject, new()
        {
            Type type = typeof(T);

            if (!this._typeToObjects.TryGetValue(type, out Queue <GPoolObject> objs))
            {
                objs = new Queue <GPoolObject>();
                this._typeToObjects[type] = objs;
            }
            GPoolObject obj = objs.Count == 0 ? new T() : objs.Dequeue();

            return(( T )obj);
        }
示例#2
0
 public void Push(GPoolObject obj)
 {
     this._typeToObjects[obj.GetType()].Enqueue(obj);
 }