我有一个List<Animal>
,但是这个列表中包含了Mammal
等Animal
的子类。
我应该用[Serializable]接口将其保存下来,这没有问题,但当我需要读回数据时,我不知道这些信息来自哪个子类。
我的问题是:如何存储这些信息?
我有一个List<Animal>
,但是这个列表中包含了Mammal
等Animal
的子类。
我应该用[Serializable]接口将其保存下来,这没有问题,但当我需要读回数据时,我不知道这些信息来自哪个子类。
我的问题是:如何存储这些信息?
您不需要自己处理这个,因为框架会序列化类型,并在实际反序列化内容之前知道要创建哪个实例。只需创建一个示例,您就会看到发生了什么... ;-)
is 和 as 关键字将是你的好朋友。
了解 is 关键字尝试执行转换并根据转换是否成功返回 true 或 false 是很好的。
如果你想要实际对象,而不仅仅是它的类型,最好使用 as 关键字,然后检查它是否为 null。这将节省你在确定类型后再次进行转换的步骤。