以下是我想要做的一个例子。
public class Map{
int id;
int type;
List<Points>;
}
public class Points{
int xpos;
int ypos;
int id;
//Building bg; or Parking pg;
}
public Building{}
public Parking{}
现在根据Map类中的type属性,我需要在Points类中添加Building或Parking类对象。 例如:如果输入== 1,则在类型== 2添加停车点数时将建筑物添加到其他点。
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
这样做的一种方法是让Building
和Parking
继承自Point
(顺便说一下,我推荐一个更好的名字,也许是Location
)
public class Location
{
public int Id { get; }
public int X { get; }
public int Y { get; }
}
public class Building : Location
{
public int Stories { get; }
}
public class Parking: Location
{
public int Capacity { get; }
}
现在,List<Location>
内部Map
可以处理建筑物和停车场:
locations.Add(someBuilding);
locations.Add(someParking);
另一个选择是使用接口:interface ILocation
将由Building
和Parking
以及List<ILocation>
Map
实施。
何时使用一个或另一个取决于不同类型之间的共同点是什么:
int
的行为就像IEquatable<int>
,string
一样。除了这种行为之外,string
和int
之间是否有任何共同点?