public TileMap<Tile> tileMap { get; set; }
public class SpecificTypeOfTile : Tile
public class TileMap<T> where T : Tile
public override string ToString()
public class TileOnlyMap : TileMap<Tile>
var newTile = new Tile();
var newTile2 = new SpecificTypeOfTile();
public static void Main()
var t = new TileOnlyMap();