让对象方法将自身的实例返回给调用对象

时间:2013-10-30 22:21:44

标签: c# .net c#-4.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时,所有数据都会消失。我觉得我错过了一些简单的事情。

1 个答案:

答案 0 :(得分:1)

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

考虑一下:

dbData是什么类型的?

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

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

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

相关问题