public CellManager GetOrSetNeighbor(CellDirection cellDirection) { var cellManager = GetNeighbor(cellDirection); if (cellManager == null) { cellManager = CellsManager.GetNeighbor(this, cellDirection); if (cellManager != null) { SetNeighbor(cellManager, cellDirection); } } return(cellManager); }