Okay this is the small code block

{
Tiles Current = null;
Current = new Tiles(Maps[currentMap].map[ClickedX, ClickedY]);
EditHistory.Add(new TileHistory(Current));
Maps[currentMap].map[ClickedX, ClickedY].setLayer(layer, tile.TileNumber, myTileSets, tileX, tileY);
}

When i run my program the Current Variable is set to null and then takes on the value of Maps[currentMap].map[ClickedX, ClickedY]. Basically i want to store Maps[currentMap].map[ClickedX, ClickedY] into Current and then change Maps[currentMap].map[ClickedX, ClickedY] to something different. After i change Maps[currentMap].map[ClickedX, ClickedY] to something different, the current variable changes as well. Any reason why? I thought u had to use unsafe{*&} stuff to use pointers