我有 3 种不同类型的数据:图像、视频和音频剪辑。每个都有一个关联的 GPS 点,所以我有一个这样的基类:
public abstract class Data {
public Latitude { get; set; }
public Longitude { get; set; }
}
这样我就可以在地图上绘制所有内容,而不必担心它是什么类型的数据。但是,我一直在阅读 POCO 不应该派生自object
C# 中的基类以外的任何东西。这是真的?
不,许多 POCO 对象都有基类。没有规定说它们不能有或应该有基类。如果它在您的应用程序中有意义,那就去做吧。
对于普通的旧 clr 对象,我认为继承没有任何问题。事实上,继承是我为什么喜欢使用 POCO 对象而不是数据集之类的东西的驱动因素。
你在哪里读到的?如果不允许从除 之外的类派生,您将如何构建对象层次结构System.Object
?(不用说,System.Object
在 .NET 中,它始终位于类层次结构的顶部)
当使用 POCO 这个词时,它通常表示必须继承基类才能使用某些 ORM 工具所需的框架:
MyClass : PersistableEntity(这里 PersistableEntity 是一个在 ActiveRecord 框架中管理技术持久性的类)
所以你不能在你的类中表达继承,因为你只能从一个类继承。如果是这样,您可以使用聚合而不是继承。
所以在你的例子中,你的班级是 POCO :)
虽然您可以使用继承,但我不确定在普通的旧 CLR/C# 对象中是否允许纬度和经度类型的数据。