【发布时间】:2019-11-09 19:50:56
【问题描述】:
我需要帮助来理解抽象类的使用。我有一个名为WorldObject 的抽象类:
public abstract class WorldObject
{
public Vector3 position;
}
我有许多继承自此的类,例如 Building 和 Tree。
我想创建一个循环通过List 或WorldObjects 的方法,并将最接近的一个返回给我。
我希望能够将此方法用于我所有类型的WorldObjects,但我无法让它工作:
public List<Building> buildings = new List<Building>();
public List<Tree> trees= new List<Tree>();
private void GoToClosestBuilding()
{
var target = GetClosestWorldObject(buildings); //Error: Cannot convert building to WorldObject
}
Vector3 GetClosestWorldObject(List<WorldObject> objects)
{
//...
}
当我尝试将我的Building 或Tree 列表传递给我的方法时,它返回一个错误,它无法在Building 和WorldObject 之间进行转换,等等。
我如何构建我的代码,以便这样的事情可以工作?
【问题讨论】:
标签: c#