public override object Clone() { SimpleChan newObj = new SimpleChan(this); foreach (_ElementType v in this.Queue) newObj.Queue.Enqueue(v); return newObj; }