public void CloseScreen(IScreenController screen) { if (screen != CurrentScreens.Last()) { throw new ArgumentException("Only the top screen can be closed."); } screen.DestroyResources(); CurrentScreens.Remove(screen); _reverseScreens = CurrentScreens.ReverseIterator().ToArray(); }