好的,所以我有一个int和Tile类型的字典。我有一个名为TileManager的类,我正在设计返回某个tile的新实例。现在这就是我所拥有的。
public class TileManager
{
private Dictionary<int, Tile> _registeredTiles = new Dictionary<int, Tile>();
public Tile GetNewTile(int id)
{
// Here, I need to return a new instance of the tile at the given key. I want
// something like this: return new _registeredTiles[id].GetType();
}
. . .
}
问题是,我不能只创建一个新的Tile类,因为它将持有除tile之外的其他类(它将保留Tile的子级)。
答案 0 :(得分:1)
最简单的解决方案是使用Activator.CreateInstance();
如果需要,您可以传递一个类型和一个构造函数参数数组:
return (Tile)Activator.CreateInstance(_registeredTiles[i].GetType());