0

我一直在阅读有关单例概念的内容。虽然不完全理解它,但我想在我的基类中使用我的实例获取器。

例如,我的类基类RepositoryBase将具有以下方法:

private static RepositoryBase _instance;
public static RepositoryBase Instance
{
    get
    {
        if (_instance == null)
            _instance = new RepositoryBase();
        return _instance;
    }
}

这真的有意义吗?我相信当一个新的子类UserRepository(以.RepositoryBaseInstanceRepositoryBaseUserRepository

有什么办法可以让它Instance自动返回子类,同时仍然保留在基类中?谢谢!

4

2 回答 2

3

您可以尝试使用通用基类

abstract public class RepositoryBase<T>
    where T : RepositoryBase<T>, new()
{
    public static readonly T Instance = new T();
}

public class SpecificRepository : RepositoryBase<SpecificRepository>
{
}

然后像这样使用它

var obj = SpecificRepository.Instance;
于 2012-07-17T17:58:47.107 回答
2

静态成员不是继承的,因为它们是静态的。这就是为什么你对它的看法无论如何都行不通的原因。

于 2012-07-17T17:52:24.607 回答