0

我试图有一个构造函数来Object X返回Load方法,Object X Base Class然后将从Load方法返回的数据分配给Object X,我无法弄清楚如何做到这一点。这是我认为可行的:

public class ObjectX : BaseClass {
    public int testProperty {get; set;}

    public ObjectX(Guid id) {
        base.Load(id);
    }
}

public class BaseClass {
    public Load(Guid id) {
        var dbData = // Loads ObjectX from db
        return dbData;
    }
}

当我运行此代码时,数据会完美加载,但不会将任何内容分配给Object X. dbData 加载testProperty正确,但是当它传递给ObjectX所有数据时消失。我觉得我错过了一些简单的东西。

4

1 回答 1

1

那是不可能的。构造函数不能覆盖自身。

考虑一下:

dbData 是什么类型的?

如果它不是 ObjectX 类型,则不能将其分配给 ObjectX 的实例。

如果它是 ObjectX 类型,则需要在某个地方构造它,然后就会有一个无限循环。

您可以做的是从数据库加载数据,然后手动将数据复制到您的属性中。

于 2013-10-30T22:27:28.387 回答