您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

静态方法继承的正确替代方法是什么?

静态方法继承的正确替代方法是什么?

一个想法:

public abstract class Fruit<T>
    where T : Fruit<T>, new()
{
    public static T CreateInstance()
    {
        T newFruit = new T();
        newFruit.Initialize();  // Calls Apple.Initialize
        return newFruit;
    }

    protected abstract void Initialize();
}

public class Apple : Fruit<Apple>
{
    protected override void Initialize() { ... }
}

像这样调用

Apple myAppleVar = Fruit<Apple>.CreateInstance();

无需额外的工厂课程。

其他 2022/1/1 18:14:42 有518人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶