2

我有 3 种不同类型的数据:图像、视频和音频剪辑。每个都有一个关联的 GPS 点,所以我有一个这样的基类:

public abstract class Data {
    public Latitude { get; set; }
    public Longitude { get; set; }
}

这样我就可以在地图上绘制所有内容,而不必担心它是什么类型的数据。但是,我一直在阅读 POCO 不应该派生自objectC# 中的基类以外的任何东西。这是真的?

4

5 回答 5

6

不,许多 POCO 对象都有基类。没有规定说它们不能有或应该有基类。如果它在您的应用程序中有意义,那就去做吧。

于 2009-09-23T22:48:22.763 回答
1

对于普通的旧 clr 对象,我认为继承没有任何问题。事实上,继承是我为什么喜欢使用 POCO 对象而不是数据集之类的东西的驱动因素。

于 2009-09-23T22:49:10.580 回答
1

你在哪里读到的?如果不允许从除 之外的类派生,您将如何构建对象层次结构System.Object?(不用说,System.Object在 .NET 中,它始终位于类层次结构的顶部)

于 2009-09-23T22:49:45.080 回答
1

当使用 POCO 这个词时,它通常表示必须继承基类才能使用某些 ORM 工具所需的框架:

MyClass : PersistableEntity(这里 PersistableEntity 是一个在 ActiveRecord 框架中管理技术持久性的类)

所以你不能在你的类中表达继承,因为你只能从一个类继承。如果是这样,您可以使用聚合而不是继承。

所以在你的例子中,你的班级是 POCO :)

于 2009-09-23T22:56:49.753 回答
0

虽然您可以使用继承,但我不确定在普通的旧 CLR/C# 对象中是否允许纬度和经度类型的数据。

于 2020-03-03T13:33:21.540 回答